Subversion Repositories Kolibri OS

Rev

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