Now for incorrect scripts (which doesnt start with #SHS) shell says that they are incorrect, not "File not found". Also, translated comments from russian to english in two files.

git-svn-id: svn://kolibrios.org@7792 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Rustem Gimadutdinov (rgimad)
2020-04-14 22:21:16 +00:00
parent abbaaa2ff2
commit b76d44d868
4 changed files with 127 additions and 122 deletions

View File

@@ -4,63 +4,68 @@
int executable_run(char cmd[], char args[])
{
char exec[FILENAME_MAX];
int result;
char exec[FILENAME_MAX];
int result;
if ( '/' == cmd[0]) // ¥á«¨ ¯ãâì  ¡á®«îâ­ë©
if ( '/' == cmd[0]) // if path is absolute
{
strcpy(exec, cmd);
if ( !file_check(exec) ) // ¯à®¢¥à塞 áãé¥á⢮¢ ­¨¥ ä ©« 
strcpy(exec, cmd);
if (!file_check(exec) ) // check file existense
{
file_not_found(cmd);
return FALSE;
file_not_found(cmd);
return FALSE;
}
}
else
else
{
strcpy(exec, cur_dir); // ¯à®¢¥à塞 ä ©« ¢ ⥪ã饬 ª â «®£¥
if (exec[strlen(exec)-1] != '/')
strcat(exec, "/"); // add slash
strcat(exec, cmd);
if ( !file_check(exec) ) // ¯à®¢¥à塞 áãé¥á⢮¢ ­¨¥ ä ©« 
{
strcpy(exec, "/rd/1/"); // ¯à®¢¥à塞 ä ©« ­  ¢¨àâã «ì­®¬ ¤¨áª¥
strcpy(exec, cur_dir); // check file in current directory
if (exec[strlen(exec)-1] != '/')
strcat(exec, "/"); // add slash
strcat(exec, cmd);
if ( !file_check(exec) ) // ¯à®¢¥à塞 áãé¥á⢮¢ ­¨¥ ä ©« 
{
if ( !file_check(exec) ) // check file existense
{
strcpy(exec, "/rd/1/"); // check file on virtual disk
strcat(exec, cmd);
if ( !file_check(exec) ) // check file existense
{
file_not_found(cmd);
return FALSE;
}
}
}
}
// if file exists:
if ( script_check(exec) )
return script_run(exec, args);
/* § ¯ã᪠¯à®£à ¬¬ë */
result = program_run(exec, args);
if (result > 0)
// try to run as a program
result = program_run(exec, args);
if (result > 0)
{
if ( !program_console(result) )
if ( !program_console(result) )
{
LAST_PID = result;
#if LANG_ENG
printf (" '%s' started. PID = %d\n\r", cmd, result);
#elif LANG_RUS
printf (" '%s' § ¯ã饭. PID = %d\n\r", cmd, result);
#endif
LAST_PID = result;
#if LANG_ENG
printf (" '%s' started. PID = %d\n\r", cmd, result);
#elif LANG_RUS
printf (" '%s' § ¯ã饭. PID = %d\n\r", cmd, result);
#endif
}
return TRUE;
return TRUE;
}
else
else
{
file_not_found(cmd);
return FALSE;
if ( script_check(exec) ) // if file is a valid script
{
return script_run(exec, args);
} else
{
#if LANG_ENG
printf ("Error in '%s' : script must start with #SHS line\n\r", cmd);
#elif LANG_RUS
printf ("Žè¨¡ª  ¢ '%s' : áªà¨¯â ¤®«¦¥­ ­ ç¨­ âìáï á® áâà®çª¨ #SHS\n\r", cmd);
#endif
return FALSE;
}
}
}