| Commit message (Collapse) | Author | Files | Lines |
|
The recent change to system(3) makes watch work much better, so
enable it by default.
|
|
Nofork applets can't be interrupted with ctrl-c. This isn't an
issue for most such applets because they do very little and won't
run for very long. However 'yes' and 'seq 10000000' can't be
interrupted in a interactive shell, which is awkward.
As a special case ignore the nofork-ness of these applets if they're
run from an interactive shell.
This isn't foolproof as there are still ways to run them such that
they can't be interrupted, but it helps.
|
|
The WIN32 port uses a console control handler to detect crtl-c. This
replaces the signal handler used in POSIX. The control handler sets
an event that can be detected in waitpid_child. However this only
works when a wait is in progress, which makes it impossible to
break out of a simple shell loop with ctrl-c:
while true; do
sleep 1
echo hi
done
Better performance can be achieved by setting the pending_int flag in
the control handler, similar to what's done in the signal handler.
The deferred signal is processed in int_on.
Or at least it would be but for a bug in the WIN32 code to handle
shellexec: interrupts weren't being properly turned off and on.
So this had to be fixed too.
|
|
Rewrite mingw_system using mingw_spawn_proc. Also fix return values.
|
|
When spawning a process the file should be executed directly if its
filename contains any path separator, not just if it's an absolute
path.
|
|
MinGW's getopt is sufficiently similar to GNU's getopt that the code to
handle '-x' in the option string isn't required. This doesn't change
the behaviour, which was already correct, but saves a few bytes.
|
|
The abbreviated commit in the version string recently increased to
9 digits thus causing the first line of the help message to exceed
80 characters.
|
|
|