diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-02-09 17:30:14 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-02-09 17:30:14 +0000 |
commit | d244c5eaf80677bc785ada68d4bb805cdf2d4505 (patch) | |
tree | 1323b11d2c573ee4aff9e2a0864ce6977bf0d060 | |
parent | b477e18c1e4cf40f5463d24523a10870ece10888 (diff) | |
download | busybox-w32-d244c5eaf80677bc785ada68d4bb805cdf2d4505.tar.gz busybox-w32-d244c5eaf80677bc785ada68d4bb805cdf2d4505.tar.bz2 busybox-w32-d244c5eaf80677bc785ada68d4bb805cdf2d4505.zip |
msh: fix my buglet
-rw-r--r-- | shell/msh.c | 13 |
1 files changed, 8 insertions, 5 deletions
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) | |||
3157 | cp = t->words[1]; | 3157 | cp = t->words[1]; |
3158 | if (cp == NULL) { | 3158 | if (cp == NULL) { |
3159 | cp = homedir->value; | 3159 | cp = homedir->value; |
3160 | if (cp == NULL) | 3160 | if (cp != NULL) |
3161 | er = ": no home directory"; | 3161 | goto do_cd; |
3162 | } else if (chdir(cp) < 0) | 3162 | er = ": no home directory"; |
3163 | } else { | ||
3164 | do_cd: | ||
3165 | if (chdir(cp) >= 0) | ||
3166 | return 0; | ||
3163 | er = ": bad directory"; | 3167 | er = ": bad directory"; |
3164 | else | 3168 | } |
3165 | return 0; | ||
3166 | prs(cp != NULL ? cp : "cd"); | 3169 | prs(cp != NULL ? cp : "cd"); |
3167 | err(er); | 3170 | err(er); |
3168 | return 1; | 3171 | return 1; |