Subversion Repositories Kolibri OS

Rev

Rev 7805 | Show entire file | Ignore 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
{
-
 
3
	char temp[256];
-
 
4
	unsigned result;
Line 4... Line -...
4
char temp[256];
-
 
5
unsigned result;
-
 
6
 
-
 
7
if (NULL == dir)
5
 
8
	{
-
 
9
	#if LANG_ENG
-
 
10
		printf("  cd \n\r");
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, "./") )
-
 
18
	return TRUE;
-
 
19
 
-
 
20
if (  ( 0 == strcmp(dir, "..") ||  0 == strcmp(dir, "../") ) && ( 0 != strcmp(cur_dir, "/")) )
-
 
21
	{
-
 
22
	cur_dir[strlen(cur_dir)-1]='\0';
-
 
23
	dir_truncate(cur_dir);
-
 
24
    set_cwd(cur_dir);
10
 
25
	return TRUE;
-
 
Line 26... Line 11...
26
	}
11
	if ( 0 == strcmp(dir, ".") || 0 == strcmp(dir, "./") )
27
 
-
 
28
if ( '/' == dir[0])
12
		return TRUE;
29
	{
-
 
30
	if ( dir_check(dir) )
13
 
31
		{
14
	if (  ( 0 == strcmp(dir, "..") ||  0 == strcmp(dir, "../") ) && ( 0 != strcmp(cur_dir, "/")) ) {
32
		strcpy(cur_dir, dir);
15
		cur_dir[strlen(cur_dir)-1]='\0';
33
        set_cwd(cur_dir);
-
 
34
		return TRUE;
-
 
35
		}
16
		dir_truncate(cur_dir);
36
	return FALSE;
-
 
37
	}
-
 
38
else
-
 
39
	{
-
 
40
	strcpy(temp, cur_dir);
-
 
41
	if (cur_dir[strlen(cur_dir)-1] != '/')
-
 
42
		strcat(temp, "/");
-
 
43
	strcat(temp, dir);
-
 
44
 
-
 
Line -... Line 17...
-
 
17
		set_cwd(cur_dir);
-
 
18
		return TRUE;
-
 
19
	}
-
 
20
 
-
 
21
	if ( '/' == dir[0]) {
-
 
22
		if ( dir_check(dir) )
-
 
23
			{
-
 
24
			strcpy(cur_dir, dir);
-
 
25
			set_cwd(cur_dir);
-
 
26
			return TRUE;
-
 
27
			}
-
 
28
		return FALSE;
-
 
29
	}
-
 
30
	else {
-
 
31
		strcpy(temp, cur_dir);
-
 
32
		if (cur_dir[strlen(cur_dir)-1] != '/')
-
 
33
			strcat(temp, "/");
45
	if ( dir_check(temp) )
34
		strcat(temp, dir);
46
		{
35
 
47
 
36
		if ( dir_check(temp) ) {
48
		strcpy(cur_dir, temp);
37
 
Line 49... Line 38...
49
        set_cwd(cur_dir);
38
			strcpy(cur_dir, temp);
50
		return TRUE;
39
			set_cwd(cur_dir);
Line 51... Line 40...
51
		}
40
			return TRUE;