1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-05-23 16:36:05 +02:00

22913: set $! on "bg"

This commit is contained in:
Peter Stephenson 2006-10-30 10:37:17 +00:00
parent 3292f9ec1f
commit ff9f2bb88e
3 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2006-10-30 Peter Stephenson <pws@csr.com>
* 22913: Doc/Zsh/params.yo, Src/jobs.c: set $! after a "bg", too.
2006-10-27 Peter Stephenson <pws@csr.com>
* unposted: Completion/Unix/Command/_perforce: completion

View File

@ -477,7 +477,8 @@ The following parameters are automatically set by the shell:
startitem()
vindex(!)
item(tt(!) <S>)(
The process ID of the last background command invoked.
The process ID of the last command started in the background with tt(&),
or put into the background with the tt(bg) builtin.
)
vindex(#)
item(tt(#) <S>)(

View File

@ -1789,9 +1789,21 @@ bin_fg(char *name, char **argv, Options ops, int func)
case BIN_WAIT:
if (func == BIN_BG)
jobtab[job].stat |= STAT_NOSTTY;
if ((stopped = (jobtab[job].stat & STAT_STOPPED)))
if ((stopped = (jobtab[job].stat & STAT_STOPPED))) {
makerunning(jobtab + job);
else if (func == BIN_BG) {
if (func == BIN_BG) {
/* Set $! to indicate this was backgrounded */
Process pn = jobtab[job].procs;
for (;;) {
Process next = pn->next;
if (!next) {
lastpid = (zlong) pn->pid;
break;
}
pn = next;
}
}
} else if (func == BIN_BG) {
/* Silly to bg a job already running. */
zwarnnam(name, "job already in background");
thisjob = ocj;