SHELL 0.8.2

- big refactoring, now uses libc.obj
- added kfetch command

git-svn-id: svn://kolibrios.org@8827 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Rustem Gimadutdinov (rgimad)
2021-06-12 21:34:41 +00:00
parent 112c948922
commit 68cf3e4293
59 changed files with 1617 additions and 2317 deletions

View File

@@ -1,52 +1,42 @@
int cmd_waitfor(char param[])
// waits for LASTPID or pid in param
{
/* waits for LASTPID or pid in param */
int cmd_waitfor(char param[]) {
int i, n, sel, sel_pid;
char *buf1k;
unsigned PID;
short STATE;
int i, n, sel, sel_pid;
char *buf1k;
unsigned PID;
short STATE;
sel = param && strlen(param) > 0;
sel_pid = LAST_PID;
if (sel)
{
sel_pid = _atoi(param);
sel = param && strlen(param) > 0;
sel_pid = LAST_PID;
if (sel) {
sel_pid = atoi(param);
}
if (0 == sel_pid)
return FALSE;
if (0 == sel_pid) return FALSE;
#if LANG_ENG
printf(" Awaing finish PID %d\n\r", sel_pid);
#elif LANG_RUS
printf(" ަ¨¤ ¥¬ § ¢¥à襭¨ï PID %d\n\r", sel_pid);
#endif
printf(CMD_WAITFOR_FMT, sel_pid);
buf1k = malloc(1024);
if (NULL == buf1k)
return FALSE;
buf1k = malloc(1024);
if (NULL == buf1k)
return FALSE;
while(1)
{
for (i = 1;;i++)
{
n = kol_process_info(i, buf1k);
PID = *(buf1k+30);
STATE = *(buf1k+50);
if (PID == sel_pid)
if(9 == STATE)
while(1) {
for (i = 1;;i++) {
n = kol_process_info(i, buf1k);
PID = *(buf1k+30);
STATE = *(buf1k+50);
if (PID == sel_pid)
if(9 == STATE)
goto exit_normal;
else break;
if (i == n)
goto exit_normal;
else break;
if (i == n)
goto exit_normal;
}
kol_sleep(10); // 100ms
kol_sleep(10); // 100ms
}
exit_normal:
free(buf1k);
return TRUE;
exit_normal:
free(buf1k);
return TRUE;
}