Subversion Repositories Kolibri OS

Rev

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 \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, "./") )
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