On Fri, Jun 03, 2016 at 09:54:31AM +0200, Stephen Kitt wrote:
> When looking for a job using a string descriptor, e.g.
> 
>       fg %man
> 
> the relevant loop in src/jobs.c only ever exits to the err label. With
> this patch, when the end condition is reached, we check whether a job
> was found, and if so, set things up to exit correctly via gotit.
> Multiple matches are already caught using the test in the match block.
> 
> Signed-off-by: Stephen Kitt <[email protected]>

Thanks for the patch.  I'd prefer to move that logic out of the
loop, like this:

---8<---
From: Stephen Kitt <[email protected]>

When looking for a job using a string descriptor, e.g.

        fg %man

the relevant loop in src/jobs.c only ever exits to the err label. With
this patch, when the end condition is reached, we check whether a job
was found, and if so, set things up to exit correctly via gotit.
Multiple matches are already caught using the test in the match block.

Signed-off-by: Stephen Kitt <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>

diff --git a/src/jobs.c b/src/jobs.c
index 3997863..4f02e38 100644
--- a/src/jobs.c
+++ b/src/jobs.c
@@ -714,9 +714,7 @@ check:
        }
 
        found = 0;
-       while (1) {
-               if (!jp)
-                       goto err;
+       while (jp) {
                if (match(jp->ps[0].cmd, p)) {
                        if (found)
                                goto err;
@@ -726,6 +724,10 @@ check:
                jp = jp->prev_job;
        }
 
+       if (!found)
+               goto err;
+       jp = found;
+
 gotit:
 #if JOBS
        err_msg = "job %s not created under job control";
-- 
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to