mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-03-15 23:22:53 +08:00
Mark jobs as completed when all processes have finished, not just the last one.
Fixes https://github.com/fish-shell/fish-shell/issues/876 , and coincidentally also https://github.com/fish-shell/fish-shell/issues/848
This commit is contained in:
parent
70208eb33a
commit
5d75ee7721
18
proc.cpp
18
proc.cpp
@ -296,15 +296,19 @@ int job_is_stopped(const job_t *j)
|
||||
|
||||
\param j the job to test
|
||||
*/
|
||||
int job_is_completed(const job_t *j)
|
||||
bool job_is_completed(const job_t *j)
|
||||
{
|
||||
process_t *p;
|
||||
assert(j->first_process != NULL);
|
||||
for (p = j->first_process; p->next; p = p->next)
|
||||
;
|
||||
|
||||
return p->completed;
|
||||
|
||||
bool result = true;
|
||||
for (process_t *p = j->first_process; p != NULL; p = p->next)
|
||||
{
|
||||
if (! p->completed)
|
||||
{
|
||||
result = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void job_set_flag(job_t *j, unsigned int flag, int set)
|
||||
|
2
proc.h
2
proc.h
@ -507,7 +507,7 @@ int job_is_stopped(const job_t *j);
|
||||
/**
|
||||
Tests if the job has completed, i.e. if the last process of the pipeline has ended.
|
||||
*/
|
||||
int job_is_completed(const job_t *j);
|
||||
bool job_is_completed(const job_t *j);
|
||||
|
||||
/**
|
||||
Reassume a (possibly) stopped job. Put job j in the foreground. If
|
||||
|
Loading…
x
Reference in New Issue
Block a user