From d244c5eaf80677bc785ada68d4bb805cdf2d4505 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 9 Feb 2007 17:30:14 +0000 Subject: msh: fix my buglet --- shell/msh.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'shell') diff --git a/shell/msh.c b/shell/msh.c index a2da540b3..968f073cd 100644 --- a/shell/msh.c +++ b/shell/msh.c @@ -3157,12 +3157,15 @@ static int dochdir(struct op *t) cp = t->words[1]; if (cp == NULL) { cp = homedir->value; - if (cp == NULL) - er = ": no home directory"; - } else if (chdir(cp) < 0) + if (cp != NULL) + goto do_cd; + er = ": no home directory"; + } else { + do_cd: + if (chdir(cp) >= 0) + return 0; er = ": bad directory"; - else - return 0; + } prs(cp != NULL ? cp : "cd"); err(er); return 1; -- cgit v1.2.3