forked from KolibriOS/kolibrios
fix touch and much more
git-svn-id: svn://kolibrios.org@6826 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
0dd49af34c
commit
46ae9b5169
@ -55,7 +55,7 @@ rm
|
|||||||
rmdir удаляет <каталог>
|
rmdir удаляет <каталог>
|
||||||
shutdown выключает компьютер
|
shutdown выключает компьютер
|
||||||
sleep приостанавливает работу Shell'а на заданное <время в сотых долях секунды>
|
sleep приостанавливает работу Shell'а на заданное <время в сотых долях секунды>
|
||||||
touch создаёт пустой <файл> или изменяет дату/время создания файла. Не работает
|
touch создаёт пустой <файл> или изменяет дату/время создания файла
|
||||||
uptime показывает время работы системы с момента загрузки
|
uptime показывает время работы системы с момента загрузки
|
||||||
ver показывает версию Shell, ver kernel - версию и номер ревизии ядра OS,
|
ver показывает версию Shell, ver kernel - версию и номер ревизии ядра OS,
|
||||||
ver cpu - информацию о процессоре
|
ver cpu - информацию о процессоре
|
||||||
|
@ -32,8 +32,8 @@ if (argc != 2)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
filename_in = (char*) malloc(4096);
|
filename_in = (char*) malloc(FILENAME_MAX);
|
||||||
filename_out = (char*) malloc(4096);
|
filename_out = (char*) malloc(FILENAME_MAX);
|
||||||
|
|
||||||
if (argv[0][0] != '/')
|
if (argv[0][0] != '/')
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
int cmd_mkdir(char dir[])
|
int cmd_mkdir(char dir[])
|
||||||
{
|
{
|
||||||
|
|
||||||
char temp[256];
|
char temp[FILENAME_MAX];
|
||||||
kol_struct70 k70;
|
kol_struct70 k70;
|
||||||
unsigned result;
|
unsigned result;
|
||||||
|
|
||||||
@ -34,6 +34,8 @@ if ( '/' == dir[0])
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
strcpy(temp, cur_dir);
|
strcpy(temp, cur_dir);
|
||||||
|
if (temp[strlen(temp)-1] != '/')
|
||||||
|
strcat(temp, "/"); // add slash
|
||||||
strcat(temp, dir);
|
strcat(temp, dir);
|
||||||
k70.p21 = temp;
|
k70.p21 = temp;
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ kol_struct70 k70;
|
|||||||
kol_struct_BDVK bdvk;
|
kol_struct_BDVK bdvk;
|
||||||
unsigned result, filesize, pos, i;
|
unsigned result, filesize, pos, i;
|
||||||
char buf[81]; //¡ãä¥à
|
char buf[81]; //¡ãä¥à
|
||||||
char temp[256];
|
char temp[FILENAME_MAX];
|
||||||
unsigned flags;
|
unsigned flags;
|
||||||
|
|
||||||
if (strlen(file)<1)
|
if (strlen(file)<1)
|
||||||
|
@ -3,7 +3,7 @@ int cmd_rm(char file[])
|
|||||||
{
|
{
|
||||||
|
|
||||||
kol_struct70 k70;
|
kol_struct70 k70;
|
||||||
char temp[256];
|
char temp[FILENAME_MAX];
|
||||||
unsigned result;
|
unsigned result;
|
||||||
|
|
||||||
if (NULL == file || strlen(file) == 0)
|
if (NULL == file || strlen(file) == 0)
|
||||||
@ -28,6 +28,8 @@ if ( '/' == file[0])
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
strcpy(temp, cur_dir);
|
strcpy(temp, cur_dir);
|
||||||
|
if (temp[strlen(temp)-1] != '/')
|
||||||
|
strcat(temp, "/"); // add slash
|
||||||
strcat(temp, file);
|
strcat(temp, file);
|
||||||
|
|
||||||
if ( !file_check(temp) )
|
if ( !file_check(temp) )
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
int cmd_rmdir(char dir[])
|
int cmd_rmdir(char dir[])
|
||||||
{
|
{
|
||||||
|
|
||||||
char temp[256];
|
char temp[FILENAME_MAX];
|
||||||
kol_struct70 k70;
|
kol_struct70 k70;
|
||||||
unsigned result;
|
unsigned result;
|
||||||
|
|
||||||
@ -33,6 +33,8 @@ if ( '/' == dir[0])
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
strcpy(temp, cur_dir);
|
strcpy(temp, cur_dir);
|
||||||
|
if (temp[strlen(temp)-1] != '/')
|
||||||
|
strcat(temp, "/"); // add slash
|
||||||
strcat(temp, dir);
|
strcat(temp, dir);
|
||||||
k70.p21 = temp;
|
k70.p21 = temp;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ int cmd_touch(char file[])
|
|||||||
{
|
{
|
||||||
|
|
||||||
kol_struct70 k70;
|
kol_struct70 k70;
|
||||||
char temp[256];
|
char temp[FILENAME_MAX];
|
||||||
unsigned result;
|
unsigned result;
|
||||||
|
|
||||||
if (NULL == file || strlen(file) == 0)
|
if (NULL == file || strlen(file) == 0)
|
||||||
@ -33,6 +33,8 @@ if ( '/' == file[0])
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
strcpy(temp, cur_dir);
|
strcpy(temp, cur_dir);
|
||||||
|
if (temp[strlen(temp)-1] != '/')
|
||||||
|
strcat(temp, "/"); // add slash
|
||||||
strcat(temp, file);
|
strcat(temp, file);
|
||||||
if ( !file_check(temp) )
|
if ( !file_check(temp) )
|
||||||
k70.p00 = 2;
|
k70.p00 = 2;
|
||||||
@ -47,6 +49,8 @@ k70.p16 = 0;
|
|||||||
k70.p20 = 0;
|
k70.p20 = 0;
|
||||||
k70.p21 = temp;
|
k70.p21 = temp;
|
||||||
|
|
||||||
|
//printf("try to touch [%s], fn70(%d)\n\r", temp, k70.p00);
|
||||||
|
|
||||||
result = kol_file_70(&k70);
|
result = kol_file_70(&k70);
|
||||||
|
|
||||||
if (0 == result)
|
if (0 == result)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
int executable_run(char cmd[], char args[])
|
int executable_run(char cmd[], char args[])
|
||||||
{
|
{
|
||||||
|
|
||||||
char exec[256];
|
char exec[FILENAME_MAX];
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
if ( '/' == cmd[0]) // メ<> <20>碎 <20>=<EFBFBD>鈞㈲<E9889E>
|
if ( '/' == cmd[0]) // メ<> <20>碎 <20>=<EFBFBD>鈞㈲<E9889E>
|
||||||
|
@ -121,6 +121,13 @@ strcpy(title, "SHELL ");
|
|||||||
strcat(title, SHELL_VERSION);
|
strcat(title, SHELL_VERSION);
|
||||||
CONSOLE_INIT(title);
|
CONSOLE_INIT(title);
|
||||||
|
|
||||||
|
if (sizeof (kol_struct70) != 25)
|
||||||
|
{
|
||||||
|
printf("Invalid struct align kol_struct70, need to fix compile options\n\r");
|
||||||
|
kol_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
strcpy(cur_dir, PATH);
|
strcpy(cur_dir, PATH);
|
||||||
dir_truncate(cur_dir);
|
dir_truncate(cur_dir);
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#define E_NOMEM 30
|
#define E_NOMEM 30
|
||||||
#define E_PARAM 33
|
#define E_PARAM 33
|
||||||
|
|
||||||
|
#define FILENAME_MAX 1024
|
||||||
|
|
||||||
#pragma pack(push,1)
|
#pragma pack(push,1)
|
||||||
typedef struct
|
typedef struct
|
||||||
|
Loading…
x
Reference in New Issue
Block a user