Rev 7805 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7805 | Rev 8827 | ||
---|---|---|---|
Line 1... | Line -... | ||
1 | int cmd_cd(char dir[]) |
- | |
2 | { |
1 | int cmd_cd(char dir[]) |
3 | 2 | { |
|
4 | char temp[256]; |
- | |
5 | unsigned result; |
3 | char temp[256]; |
6 | 4 | unsigned result; |
|
Line 7... | Line 5... | ||
7 | if (NULL == dir) |
5 | |
8 | { |
- | |
9 | #if LANG_ENG |
- | |
10 | printf(" cd |
6 | if (NULL == dir) { |
11 | #elif LANG_RUS |
- | |
12 | printf(" cd <¤¨à¥ªâ®à¨ï>\n\r"); |
- | |
13 | #endif |
- | |
14 | return TRUE; |
7 | printf(CMD_CD_USAGE); |
15 | } |
8 | return TRUE; |
Line 16... | Line 9... | ||
16 | 9 | } |
|
17 | if ( 0 == strcmp(dir, ".") || 0 == strcmp(dir, "./") ) |
10 | |
Line 18... | Line 11... | ||
18 | return TRUE; |
11 | if ( 0 == strcmp(dir, ".") || 0 == strcmp(dir, "./") ) |
19 | - | ||
20 | if ( ( 0 == strcmp(dir, "..") || 0 == strcmp(dir, "../") ) && ( 0 != strcmp(cur_dir, "/")) ) |
12 | return TRUE; |
21 | { |
13 | |
22 | cur_dir[strlen(cur_dir)-1]='\0'; |
14 | if ( ( 0 == strcmp(dir, "..") || 0 == strcmp(dir, "../") ) && ( 0 != strcmp(cur_dir, "/")) ) { |
23 | dir_truncate(cur_dir); |
15 | cur_dir[strlen(cur_dir)-1]='\0'; |
24 | set_cwd(cur_dir); |
16 | dir_truncate(cur_dir); |
Line 25... | Line 17... | ||
25 | return TRUE; |
17 | set_cwd(cur_dir); |
26 | } |
- | |
27 | 18 | return TRUE; |
|
28 | if ( '/' == dir[0]) |
19 | } |
29 | { |
20 | |
30 | if ( dir_check(dir) ) |
21 | if ( '/' == dir[0]) { |
31 | { |
22 | if ( dir_check(dir) ) |
32 | strcpy(cur_dir, dir); |
23 | { |
33 | set_cwd(cur_dir); |
24 | strcpy(cur_dir, dir); |
34 | return TRUE; |
25 | set_cwd(cur_dir); |
35 | } |
26 | return TRUE; |
36 | return FALSE; |
- | |
37 | } |
27 | } |
38 | else |
28 | return FALSE; |
39 | { |
29 | } |
40 | strcpy(temp, cur_dir); |
30 | else { |
Line 41... | Line 31... | ||
41 | if (cur_dir[strlen(cur_dir)-1] != '/') |
31 | strcpy(temp, cur_dir); |
42 | strcat(temp, "/"); |
- | |
Line 43... | Line 32... | ||
43 | strcat(temp, dir); |
32 | if (cur_dir[strlen(cur_dir)-1] != '/') |
44 | 33 | strcat(temp, "/"); |
|
45 | if ( dir_check(temp) ) |
34 | strcat(temp, dir); |
46 | { |
35 |