mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-03-27 14:45:13 +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
|
\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);
|
assert(j->first_process != NULL);
|
||||||
for (p = j->first_process; p->next; p = p->next)
|
bool result = true;
|
||||||
;
|
for (process_t *p = j->first_process; p != NULL; p = p->next)
|
||||||
|
{
|
||||||
return p->completed;
|
if (! p->completed)
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void job_set_flag(job_t *j, unsigned int flag, int set)
|
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.
|
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
|
Reassume a (possibly) stopped job. Put job j in the foreground. If
|
||||||
|
Loading…
x
Reference in New Issue
Block a user