diff options
author | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2007-02-09 17:30:14 +0000 |
---|---|---|
committer | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2007-02-09 17:30:14 +0000 |
commit | a7c01f278634f1a549f9b39a90742d99f152dc1c (patch) | |
tree | 1323b11d2c573ee4aff9e2a0864ce6977bf0d060 /shell | |
parent | 9732ab4606272483d1632067dcb1342562763a52 (diff) | |
download | busybox-w32-a7c01f278634f1a549f9b39a90742d99f152dc1c.tar.gz busybox-w32-a7c01f278634f1a549f9b39a90742d99f152dc1c.tar.bz2 busybox-w32-a7c01f278634f1a549f9b39a90742d99f152dc1c.zip |
msh: fix my buglet
git-svn-id: svn://busybox.net/trunk/busybox@17841 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'shell')
-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; |