forked from KolibriOS/kolibrios
Shell 0.4.4 (All)
git-svn-id: svn://kolibrios.org@1665 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
60
programs/system/shell/modules/module_executable.c
Normal file
60
programs/system/shell/modules/module_executable.c
Normal file
@@ -0,0 +1,60 @@
|
||||
|
||||
/// ===========================================================
|
||||
|
||||
int executable_run(char cmd[], char args[])
|
||||
{
|
||||
|
||||
char exec[256];
|
||||
char error_starting[]={" No such command '%s'.\n\r"};
|
||||
int result;
|
||||
|
||||
if ( '/' == cmd[0]) // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
strcpy(exec, cmd);
|
||||
|
||||
if ( !file_check(exec) ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
printf(error_starting, cmd);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
strcpy(exec, cur_dir); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
strcat(exec, cmd);
|
||||
|
||||
if ( !file_check(exec) ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
strcpy(exec, "/rd/1/"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
strcat(exec, cmd);
|
||||
if ( !file_check(exec) ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
printf(error_starting, cmd);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( script_check(exec) )
|
||||
{
|
||||
return script_run(exec, args);
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
result = program_run(exec, args);
|
||||
if (result > 0)
|
||||
{
|
||||
printf (" '%s' started. PID = %d\n\r", cmd, result);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf(error_starting, cmd);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// ===========================================================
|
Reference in New Issue
Block a user