kolibrios-gitea/programs/system/shell/cmd/cmd_cd.c
Albom 306b448222 Shell 0.7.2. 1) .shell moved to /sys/settings. 2) "cd .." command fixed.
git-svn-id: svn://kolibrios.org@4106 a494cfbc-eb01-0410-851d-a64ba20cac60
2013-10-26 18:53:48 +00:00

56 lines
775 B
C

int cmd_cd(char dir[])
{
char temp[256];
unsigned result;
if (NULL == dir)
{
#if LANG_ENG
printf(" cd <directory>\n\r");
#elif LANG_RUS
printf(" cd <¤¨ŕĽŞâŽŕ¨ď>\n\r");
#endif
return TRUE;
}
if ( 0 == strcmp(dir, ".") )
return FALSE;
if ( ( 0 == strcmp(dir, "..") ) && ( 0 != strcmp(cur_dir, "/")) )
{
cur_dir[strlen(cur_dir)-1]='\0';
dir_truncate(cur_dir);
return TRUE;
}
if ( '/' == dir[0])
{
if ( dir_check(dir) )
{
strcpy(cur_dir, dir);
return TRUE;
}
return FALSE;
}
else
{
strcpy(temp, cur_dir);
if (cur_dir[strlen(cur_dir)-1] != '/')
strcat(temp, "/");
strcat(temp, dir);
if ( dir_check(temp) )
{
strcpy(cur_dir, temp);
return TRUE;
}
return FALSE;
}
}