| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
A newly forked subshell now reports back the process group it
will be using for the main shell to record.
This prevents an error where the shell incorrectly thought an
exiting process owned the terminal and so grabbed it back,
putting the foreground process into the background.
|
|
|
|
|
|
| |
See NEWS for more information.
Patch by Anthony Sottile and Buck Evan.
|
|
|
|
|
|
| |
For read -k and read -q where we use ZLE, we just want a single
key and not full ZLE processing. So don't handle timed
ZLE functions when preforming the read.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Apply unary minus to a complete lexical constant rather than the
first component that comes along.
|
| |
|
| |
|
|
|
|
| |
Needed when looping owing to having handled a special fd.
|
|
|
|
| |
The point can now increment twice per iteration.
|
|
|
|
|
|
|
|
|
|
| |
Fix regression with trap on left hand side of pipe.
Fix forced return from shell structure within nested function.
Fix tests exiting too early.
Add new test case.
|
|
|
|
| |
messages.
|
|
|
|
|
|
| |
Add vared -g option along the lines of typeset -g.
Set reply safely in zsh_directory_name_cdr.
|
|
|
|
|
|
|
|
| |
* Teach ztrftime() %9. and %N for nanoseconds
* Update prompt expansion to pass sub-second times for time formatting
* Update zsh/stat to pass sub-second times for atime/mtime/ctime
Patch heavily based on Oliver's earlier work @ workers/24059
|
|
|
|
|
| |
If the math evaulation to get the shift count failed the status
wasn't passed back from the builtin.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Remove warnings of unused values as we always check the finally
result later.
Put segid before setuid as the setgid could fail if UID
no longer privileged.
|
| |
|
| |
|
|
|
|
| |
zlemetall need not count the 'x' added at the cursor in set_comp_sep()
|
| |
|
| |
|
|
|
|
| |
This avoids proliferating #ifdef's.
|
|
|
|
|
|
| |
Previously it failed with an error message that the function
was already defined. This is inconsistent with most other
aspects of shell usage.
|
| |
|
|
|
|
| |
This could happen when kiiling a job. The processs might be reused.
|
| |
|
|
|
|
| |
point operations instead of errors to allow non-stop IEEE 754 arithmetic
|
|
|
|
| |
while condition
|
| |
|
| |
|
|
|
|
|
| |
Otherwise status from sched and other asynchronous functions
could escape back to the main shell.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If executing a command not at the end of a pipeline, and
not optimised in the calling code, we can fork before
"prefork" substitutions, at the same point as
for background commands.
Move fork before our preliminary scan of arguments to find
a command: in the cases of early fork
we don't need this information before forking.
Ensure we _exit if forked in execcmd_exec().
Rationalise use of forks and pipes.
Ensure we _exit instead of returning from execcmd_exec() if we
have forked. Before the optimisation code after the fork always ran
to the check at the end, but that code is overkill for the logic
between the early fork and the existing one.
Remove old workaround to fork in caller of execcmd for current shell
constructs as no longer needed with early fork below.
Close input of newly created pipe on fork (destined for RHS of pipe
which we never execute): this replaces a workaround from
zsh-workers/32171, commit 9887fc3d7b.
Set last1 on early fork as needed by some instances of shell
constructs on LHS of pipeline to know they are exiting.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Don't close associated file descriptors in the closem()
tidy up function as they should remain visible to external
processes. Override if about to exit.
Unit test for the failing case: note this relies on the
existence of /proc/self/fd or equivalent.
|
|
|
|
|
|
| |
Only do this if killpg(dead_pid, 0) returns -1, indicating
the pgprp doesn't exist any more, else there is a race
if other proceses have started using it.
|
| |
|
|
|
|
|
|
|
| |
In execcmd the case of running the last command in a pipeline
asynchronously for the purpose of & and &! is easy to work out,
and we can avoid side effects and unnecessary execution time in
the parent shell by forking earlier.
|
|
|
|
|
| |
We shouldn't do any fix ups unless the process has actually
exited.
|
|
|
|
|
|
|
|
|
| |
If process group leader exits, allow a newly forked process to become
process leader. If a foreground job, reattach the shell to the
terminal until that happens.
Unblock signals when reading output for command subsitution so that
we can do this reattaching immediately.
|
|
|
|
| |
Also fix harmless no-op typo from hand-applying 42636 for previous commit.
|
|
|
|
| |
Also fix paste-o in older log entry
|
|
|
|
|
| |
This was occurring in a multiple function definition where a
function name is duplicated.
|
| |
|
|
|
|
| |
more efficient
|