Rev 7805 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7805 | Rev 8827 | ||
---|---|---|---|
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; |
|
7 | if (NULL == dir) |
5 | |
8 | { |
6 | if (NULL == dir) { |
9 | #if LANG_ENG |
- | |
10 | printf(" cd |
- | |
11 | #elif LANG_RUS |
7 | printf(CMD_CD_USAGE); |
12 | printf(" cd <¤¨à¥ªâ®à¨ï>\n\r"); |
- | |
13 | #endif |
- | |
14 | return TRUE; |
- | |
15 | } |
8 | return TRUE; |
16 | 9 | } |
|
17 | if ( 0 == strcmp(dir, ".") || 0 == strcmp(dir, "./") ) |
10 | |
18 | return TRUE; |
11 | if ( 0 == strcmp(dir, ".") || 0 == strcmp(dir, "./") ) |
19 | 12 | return TRUE; |
|
20 | if ( ( 0 == strcmp(dir, "..") || 0 == strcmp(dir, "../") ) && ( 0 != strcmp(cur_dir, "/")) ) |
13 | |
21 | { |
14 | if ( ( 0 == strcmp(dir, "..") || 0 == strcmp(dir, "../") ) && ( 0 != strcmp(cur_dir, "/")) ) { |
22 | cur_dir[strlen(cur_dir)-1]='\0'; |
- | |
23 | dir_truncate(cur_dir); |
15 | cur_dir[strlen(cur_dir)-1]='\0'; |
24 | set_cwd(cur_dir); |
16 | dir_truncate(cur_dir); |
25 | return TRUE; |
17 | set_cwd(cur_dir); |
26 | } |
18 | return TRUE; |
27 | 19 | } |
|
28 | if ( '/' == dir[0]) |
20 | |
29 | { |
21 | if ( '/' == dir[0]) { |
30 | if ( dir_check(dir) ) |
- | |
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; |
27 | } |
37 | } |
28 | return FALSE; |
38 | else |
29 | } |
39 | { |
30 | else { |
40 | strcpy(temp, cur_dir); |
31 | strcpy(temp, cur_dir); |
41 | if (cur_dir[strlen(cur_dir)-1] != '/') |
- | |
42 | strcat(temp, "/"); |
32 | if (cur_dir[strlen(cur_dir)-1] != '/') |
43 | strcat(temp, dir); |
33 | strcat(temp, "/"); |
44 | 34 | strcat(temp, dir); |
|
45 | if ( dir_check(temp) ) |
35 | |
46 | { |
36 | if ( dir_check(temp) ) { |
47 | - | ||
48 | strcpy(cur_dir, temp); |
37 | |
49 | set_cwd(cur_dir); |
38 | strcpy(cur_dir, temp); |
50 | return TRUE; |
39 | set_cwd(cur_dir); |
51 | } |
40 | return TRUE; |
52 | 41 | } |
|
53 | return FALSE; |
42 | |
54 | } |
43 | return FALSE; |
55 | 44 | } |
|
56 | }¤¨à¥ªâ®à¨ï> |
45 | |
- | 46 | } |