Rev 4106 |
Rev 6862 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
static inline void set_cwd(const char* cwd)
{
__asm__ __volatile__(
"int $0x40"
::"a"(30),"b"(1),"c"(cwd));
};
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;
}
return FALSE;
if ( ( 0 == strcmp(dir
, "..") ) && ( 0 != strcmp(cur_dir
, "/")) )
{
cur_dir
[strlen(cur_dir
)-1]='\0';
dir_truncate(cur_dir);
set_cwd(cur_dir);
return TRUE;
}
if ( '/' == dir[0])
{
if ( dir_check(dir) )
{
set_cwd(cur_dir);
return TRUE;
}
return FALSE;
}
else
{
if (cur_dir
[strlen(cur_dir
)-1] != '/')
if ( dir_check(temp) )
{
set_cwd(cur_dir);
return TRUE;
}
return FALSE;
}
}