[git commit] ash: fix bug 571 (jobs %string misbehaving)

Denys Vlasenko vda.linux at googlemail.com
Mon Aug 17 00:12:20 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=ffc39202aad7858bbe4a894f0e81e7ec313b5478
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 shell/ash.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/shell/ash.c b/shell/ash.c
index 3755202..077f5e5 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -3510,7 +3510,7 @@ getjob(const char *name, int getctl)
 {
 	struct job *jp;
 	struct job *found;
-	const char *err_msg = "No such job: %s";
+	const char *err_msg = "%s: no such job";
 	unsigned num;
 	int c;
 	const char *p;
@@ -3562,10 +3562,8 @@ getjob(const char *name, int getctl)
 		p++;
 	}
 
-	found = 0;
-	while (1) {
-		if (!jp)
-			goto err;
+	found = NULL;
+	while (jp) {
 		if (match(jp->ps[0].cmd, p)) {
 			if (found)
 				goto err;
@@ -3574,6 +3572,9 @@ getjob(const char *name, int getctl)
 		}
 		jp = jp->prev_job;
 	}
+	if (!found)
+		goto err;
+	jp = found;
 
  gotit:
 #if JOBS
-- 
1.6.3.3



More information about the busybox-cvs mailing list