Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 1664 → Rev 1665

/programs/system/shell/cmd/cmd_about.c
0,0 → 1,17
 
int cmd_about(char param[])
{
 
char message[] = {
"\
\n\r\
Shell for KolibriOS\n\r\
version %s\n\r\n\r\
author: Oleksandr Bogomaz aka Albom\n\r\
e-mail: albom85@yandex.ru\n\r\
site: http://albom85.narod.ru/\n\r\n\r\
"};
 
printf(message, SHELL_VERSION);
return TRUE;
}
/programs/system/shell/cmd/cmd_alias.c
0,0 → 1,19
 
int cmd_alias(char arg[])
{
 
int result;
 
if (NULL == arg)
{
alias_list();
return TRUE;
}
 
result = alias_check(arg);
 
if ( ( 0 != result ) && ( -1 != result ) )
alias_add(arg);
 
return TRUE;
}
/programs/system/shell/cmd/cmd_ccpuid.c
0,0 → 1,33
 
int cmd_ccpuid(char param[])
{
unsigned a, b, c, d;
char str[13];
 
str[12] = '\0';
 
asm ("cpuid" :
"=a" (a),
"=b" (b),
"=c" (c),
"=d" (d):
"a"(0));
 
str[0] = (b&0x000000ff) >> 0;
str[1] = (b&0x0000ff00) >> 8;
str[2] = (b&0x00ff0000) >> 16;
str[3] = (b&0xff000000) >> 24;
 
str[4] = (d&0x000000ff) >> 0;
str[5] = (d&0x0000ff00) >> 8;
str[6] = (d&0x00ff0000) >> 16;
str[7] = (d&0xff000000) >> 24;
 
str[8] = (c&0x000000ff) >> 0;
str[9] = (c&0x0000ff00) >> 8;
str[10] = (c&0x00ff0000) >> 16;
str[11] = (c&0xff000000) >> 24;
 
printf("%s\n\r", str);
return TRUE;
}
/programs/system/shell/cmd/cmd_cd.c
0,0 → 1,47
 
int cmd_cd(char dir[])
{
 
char temp[256];
unsigned result;
 
if (NULL == dir)
{
printf(" cd directory\n\r");
return FALSE;
}
 
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 FALSE;
}
 
if ( '/' == dir[0])
{
if ( dir_check(dir) )
{
strcpy(cur_dir, dir);
return TRUE;
}
return FALSE;
}
else
{
strcpy(temp, cur_dir);
strcat(temp, dir);
 
if ( dir_check(temp) )
{
strcpy(cur_dir, temp);
return TRUE;
}
 
return FALSE;
}
 
}
/programs/system/shell/cmd/cmd_clear.c
0,0 → 1,6
 
int cmd_clear(char param[])
{
con_cls();
return TRUE;
}
/programs/system/shell/cmd/cmd_date.c
0,0 → 1,23
 
 
int cmd_date(char param[])
{
unsigned date;
unsigned time;
 
date = kol_system_date_get();
printf(" date [dd.mm.yy]: %x%x.%x%x.%x%x",
(date&0xf00000)>>20, (date&0xf0000)>>16, // day
(date&0xf000)>>12, (date&0xf00)>>8, //month
(date&0xf0)>>4, (date&0xf) ); // year
 
 
time = kol_system_time_get();
 
printf("\n\r time [hh:mm:ss]: %x%x:%x%x:%x%x\n\r",
(time&0xf0)>>4, (time&0xf), // hours
(time&0xf000)>>12, (time&0xf00)>>8, // minutes
(time&0xf00000)>>20, (time&0xf0000)>>16 ); // seconds
 
return TRUE;
}
/programs/system/shell/cmd/cmd_echo.c
0,0 → 1,6
 
int cmd_echo(char text[])
{
printf("%s\n\r", text);
return TRUE;
}
/programs/system/shell/cmd/cmd_exit.c
0,0 → 1,8
 
int cmd_exit(char param[])
{
free(ALIASES);
_exit(1);
kol_exit();
return TRUE;
}
/programs/system/shell/cmd/cmd_free.c
0,0 → 1,14
 
int cmd_free(char param[])
{
unsigned total, free, used;
 
total = kol_system_mem();
free = kol_system_memfree();
used = total - free;
 
printf (" total [kB / MB / %%]: %-7d / %-5d / 100\n\r free [kB / MB / %%]: %-7d / %-5d / %d\n\r used [kB / MB / %%]: %-7d / %-5d / %d\n\r",
total, total/1024, free, free/1024, (free*100)/total, used, total/1024-free/1024, 100-(free*100)/total );
return TRUE;
}
/programs/system/shell/cmd/cmd_help.c
0,0 → 1,32
 
int cmd_help(char cmd[])
{
 
int i;
 
char available[]={" %d commands available:\n\r"};
 
if ( !strlen(cmd) )
{
printf (available, NUM_OF_CMD);
for (i = 0; i < NUM_OF_CMD; i++)
printf(" %s\n\r", COMMANDS[i].name);
return TRUE;
}
else
{
for (i=0; i<NUM_OF_CMD; i++)
if ( !strcmp(cmd, COMMANDS[i].name) )
{
printf(COMMANDS[i].help);
return TRUE;
}
 
printf (" Command \'%s\' not found.\n\r", cmd);
printf (available, NUM_OF_CMD);
for (i = 0; i < NUM_OF_CMD; i++)
printf(" %s\n\r", COMMANDS[i].name);
}
 
return FALSE;
}
/programs/system/shell/cmd/cmd_kill.c
0,0 → 1,43
 
 
int _atoi ( char *s )
{
int i, n;
n = 0;
for ( i = 0; s[i]!= '\0'; ++i)
if ((s[i]<'0') || (s[i]>'9'))
return 0;
else
n = 10 * n + s[i] - '0';
 
return n;
}
 
 
 
int cmd_kill(char process[])
{
 
unsigned proc;
int result;
 
if (NULL == process)
{
printf(" kill PID\n\r");
return FALSE;
}
else
{
proc = _atoi(process);
if ( 0 != proc )
{
result = kol_process_kill_pid(proc);
if (result < 0)
return FALSE;
else
return TRUE;
}
}
 
}
/programs/system/shell/cmd/cmd_ls.c
0,0 → 1,47
 
int cmd_ls(char dir[])
{
 
kol_struct70 k70;
unsigned *n;
unsigned num_of_file;
unsigned *t;
unsigned type_of_file;
int i;
 
k70.p00 = 1;
k70.p04 = 0;
k70.p08 = 0;
k70.p12 = 2*1024*1024; // 2 MB
k70.p16 = malloc(2*1024*1024);
k70.p20 = 0;
 
/// !!!
// Åñëè ls çàïóñêàåòñÿ áåç ïàðàìåòðîâ, ïðîñìàòðèâàåì òåêóùèé êàòàëîã
if ( !strlen(dir) )
k70.p21 = cur_dir;
else
k70.p21 = dir;
if ( !kol_file_70(&k70) ) // ïðîâåðÿåì ñóùåñòâîâàíèå êàòàëîãà
{
free(k70.p16);
return FALSE;
}
 
n = k70.p16+8;
num_of_file = *n; // ÷èñëî ôàéëîâ â êàòàëîãå
 
for (i = 0; i < num_of_file; i++)
{
printf (" %s", k70.p16+32+40+(264+40)*i);
t = k70.p16+32+(264+40)*i;
type_of_file = *t;
if ( (0x10 == (type_of_file&0x10)) || (8 == (type_of_file&8)) )
printf ("/");
printf ("\n\r");
}
 
free(k70.p16);
return TRUE;
}
/programs/system/shell/cmd/cmd_mkdir.c
0,0 → 1,44
 
int cmd_mkdir(char dir[])
{
 
char temp[256];
kol_struct70 k70;
unsigned result;
 
if (NULL == dir)
{
printf(" mkdir directory\n\r");
return FALSE;
}
 
 
if ( 0 == strcmp(dir, ".") || ( 0 == strcmp(dir, "..") ) || ( 0 == strcmp(cur_dir, "/")) )
{
return FALSE;
}
 
k70.p00 = 9;
k70.p04 = 0;
k70.p08 = 0;
k70.p12 = 0;
k70.p16 = 0;
k70.p20 = 0;
 
if ( '/' == dir[0])
k70.p21 = dir;
else
{
strcpy(temp, cur_dir);
strcat(temp, dir);
k70.p21 = temp;
}
 
result = kol_file_70(&k70);
 
if (0 == result)
return TRUE;
else
return FALSE;
 
}
/programs/system/shell/cmd/cmd_more.c
0,0 → 1,87
 
int cmd_more(char file[])
{
 
kol_struct70 k70;
kol_struct_BDVK bdvk;
unsigned result, filesize, pos, i;
char buf[81]; //áóôåð
char temp[256];
unsigned flags;
 
if (NULL == file)
{
printf (" less filename\n\r");
return FALSE;
}
 
if ( '/' == file[0])
{
strcpy(temp, file);
 
if ( !file_check(temp) )
{
return FALSE;
}
}
else
{
strcpy(temp, cur_dir);
strcat(temp, file);
if ( !file_check(temp) )
{
return FALSE;
}
}
 
k70.p00 = 5;
k70.p04 = k70.p08 = k70.p12 = 0;
k70.p16 = &bdvk;
k70.p20 = 0;
k70.p21 = temp;
 
result = kol_file_70(&k70); // ïîëó÷àåì èíôîðìàöèþ î ôàéëå
if ( 0 != result )
return FALSE;
 
filesize = bdvk.p32[0]; // ïîëó÷àåì ðàçìåð ôàéëà
 
buf[80]=0;
flags = con_get_flags();
 
for (pos=0;pos<filesize;pos+=80)
{
 
memset(buf, 0, 80);
 
k70.p00 = 0;
k70.p04 = pos;
k70.p08 = 0;
k70.p12 = 80;
k70.p16 = buf;
k70.p20 = 0;
k70.p21 = temp;
 
result = kol_file_70(&k70); // ÷òåíèå 80 ñèìâîëîâ
for (i=0; i<80; i++)
{
 
if (27 == buf[i])
con_set_flags(flags|0x100);
else con_set_flags(flags);
 
printf ("%c", buf[i]);
}
if ( 0 != result )
{
con_set_flags(flags);
printf ("\n\r");
return TRUE;
}
 
}
con_set_flags(flags);
printf ("\n\r");
return TRUE;
}
/programs/system/shell/cmd/cmd_ps.c
0,0 → 1,32
 
int cmd_ps(char param[])
{
 
int i, n;
char *buf1k;
unsigned PID;
unsigned *p;
short *s;
short STATE;
 
buf1k = malloc(1024);
if (NULL == buf1k)
return FALSE;
 
for (i = 1;;i++)
{
n = kol_process_info(i, buf1k);
p = buf1k+30;
PID = *p;
s = buf1k+50;
STATE = *s;
if ( 9 != STATE)
printf (" %7d %s\n\r", PID, buf1k+10);
if (i == n)
break;
}
 
free(buf1k);
return TRUE;
 
}
/programs/system/shell/cmd/cmd_pwd.c
0,0 → 1,6
 
int cmd_pwd(char param[])
{
printf (" %s\n\r", cur_dir);
return TRUE;
}
/programs/system/shell/cmd/cmd_reboot.c
0,0 → 1,6
 
int cmd_reboot(char param[])
{
kol_system_end(3);
return TRUE;
}
/programs/system/shell/cmd/cmd_rm.c
0,0 → 1,50
 
int cmd_rm(char file[])
{
 
kol_struct70 k70;
char temp[256];
unsigned result;
 
if (NULL == file)
{
printf (" rm filename\n\r");
return FALSE;
}
 
if ( '/' == file[0])
{
strcpy(temp, file);
 
if ( !file_check(temp) )
{
return FALSE;
}
}
else
{
strcpy(temp, cur_dir);
strcat(temp, file);
if ( !file_check(temp) )
{
return FALSE;
}
}
 
k70.p00 = 8;
k70.p04 = 0;
k70.p08 = 0;
k70.p12 = 0;
k70.p16 = 0;
k70.p20 = 0;
k70.p21 = temp;
 
result = kol_file_70(&k70);
 
if (0 == result)
return TRUE;
else
return FALSE;
 
}
/programs/system/shell/cmd/cmd_rmdir.c
0,0 → 1,46
 
int cmd_rmdir(char dir[])
{
 
char temp[256];
kol_struct70 k70;
unsigned result;
 
if (NULL == dir)
{
printf(" rmdir directory\n\r");
return FALSE;
}
 
if ( ( 0 == strcmp(dir, ".") ) || ( 0 == strcmp(dir, "..") ) || ( 0 == strcmp(cur_dir, "/")) )
{
return FALSE;
}
 
k70.p00 = 8;
k70.p04 = 0;
k70.p08 = 0;
k70.p12 = 0;
k70.p16 = 0;
k70.p20 = 0;
 
if ( '/' == dir[0])
k70.p21 = dir;
else
{
strcpy(temp, cur_dir);
strcat(temp, dir);
k70.p21 = temp;
}
 
if ( !dir_check(temp) )
return FALSE;
 
result = kol_file_70(&k70);
 
if (0 == result)
return TRUE;
else
return FALSE;
 
}
/programs/system/shell/cmd/cmd_sleep.c
0,0 → 1,12
 
int cmd_sleep(char param[])
{
int delay;
 
if (!strlen(param))
return FALSE;
 
delay = _atoi(param);
kol_sleep((unsigned)delay);
return TRUE;
}
/programs/system/shell/cmd/cmd_touch.c
0,0 → 1,54
 
int cmd_touch(char file[])
{
 
kol_struct70 k70;
char temp[256];
unsigned result;
 
if (NULL == file)
{
printf(" touch filename\n\r");
return FALSE;
}
 
if ( ( 0 == strcmp(file, ".") ) || ( 0 == strcmp(file, "..") ) || ( 0 == strcmp(cur_dir, "/")) )
{
return FALSE;
}
 
if ( '/' == file[0])
{
strcpy(temp, file);
 
if ( !file_check(temp) )
k70.p00 = 2;
else
k70.p00 = 3;
}
else
{
strcpy(temp, cur_dir);
strcat(temp, file);
if ( !file_check(temp) )
k70.p00 = 2;
else
k70.p00 = 3;
}
 
k70.p04 = 0;
k70.p08 = 0;
k70.p12 = 0;
k70.p16 = 0;
k70.p20 = 0;
k70.p21 = temp;
 
result = kol_file_70(&k70);
 
if (0 == result)
return TRUE;
else
return FALSE;
 
}
/programs/system/shell/cmd/cmd_ver.c
0,0 → 1,6
 
int cmd_ver(char param[])
{
printf (" %s\n\r", SHELL_VERSION);
return TRUE;
}
/programs/system/shell/cmd/.
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property