Rev 4106 | Rev 6862 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4106 | Rev 5210 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | static inline void set_cwd(const char* cwd) |
|
- | 2 | { |
|
- | 3 | __asm__ __volatile__( |
|
- | 4 | "int $0x40" |
|
- | 5 | ::"a"(30),"b"(1),"c"(cwd)); |
|
- | 6 | }; |
|
- | 7 | ||
- | 8 | ||
1 | int cmd_cd(char dir[]) |
9 | int cmd_cd(char dir[]) |
2 | { |
10 | { |
Line 3... | Line 11... | ||
3 | 11 | ||
4 | char temp[256]; |
12 | char temp[256]; |
Line 20... | Line 28... | ||
20 | if ( ( 0 == strcmp(dir, "..") ) && ( 0 != strcmp(cur_dir, "/")) ) |
28 | if ( ( 0 == strcmp(dir, "..") ) && ( 0 != strcmp(cur_dir, "/")) ) |
21 | { |
29 | { |
22 | cur_dir[strlen(cur_dir)-1]='\0'; |
30 | cur_dir[strlen(cur_dir)-1]='\0'; |
23 | dir_truncate(cur_dir); |
31 | dir_truncate(cur_dir); |
- | 32 | set_cwd(cur_dir); |
|
24 | return TRUE; |
33 | return TRUE; |
25 | } |
34 | } |
Line 26... | Line 35... | ||
26 | 35 | ||
27 | if ( '/' == dir[0]) |
36 | if ( '/' == dir[0]) |
28 | { |
37 | { |
29 | if ( dir_check(dir) ) |
38 | if ( dir_check(dir) ) |
30 | { |
39 | { |
- | 40 | strcpy(cur_dir, dir); |
|
31 | strcpy(cur_dir, dir); |
41 | set_cwd(cur_dir); |
32 | return TRUE; |
42 | return TRUE; |
33 | } |
43 | } |
34 | return FALSE; |
44 | return FALSE; |
35 | } |
45 | } |
Line 43... | Line 53... | ||
43 | if ( dir_check(temp) ) |
53 | if ( dir_check(temp) ) |
44 | { |
54 | { |
Line 45... | Line 55... | ||
45 | 55 | ||
- | 56 | strcpy(cur_dir, temp); |
|
46 | strcpy(cur_dir, temp); |
57 | set_cwd(cur_dir); |
47 | return TRUE; |
58 | return TRUE; |
Line 48... | Line 59... | ||
48 | } |
59 | } |
49 | 60 |