fix touch and much more

git-svn-id: svn://kolibrios.org@6826 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
siemargl 2017-01-06 21:23:13 +00:00
parent 0dd49af34c
commit 46ae9b5169
10 changed files with 27 additions and 9 deletions

View File

@ -55,7 +55,7 @@ rm
rmdir удаляет <каталог>
shutdown выключает компьютер
sleep приостанавливает работу Shell'а на заданное <время в сотых долях секунды>
touch создаёт пустой <файл> или изменяет дату/время создания файла. Не работает
touch создаёт пустой <файл> или изменяет дату/время создания файла
uptime показывает время работы системы с момента загрузки
ver показывает версию Shell, ver kernel - версию и номер ревизии ядра OS,
ver cpu - информацию о процессоре

View File

@ -32,8 +32,8 @@ if (argc != 2)
return TRUE;
}
filename_in = (char*) malloc(4096);
filename_out = (char*) malloc(4096);
filename_in = (char*) malloc(FILENAME_MAX);
filename_out = (char*) malloc(FILENAME_MAX);
if (argv[0][0] != '/')
{

View File

@ -2,7 +2,7 @@
int cmd_mkdir(char dir[])
{
char temp[256];
char temp[FILENAME_MAX];
kol_struct70 k70;
unsigned result;
@ -34,6 +34,8 @@ if ( '/' == dir[0])
else
{
strcpy(temp, cur_dir);
if (temp[strlen(temp)-1] != '/')
strcat(temp, "/"); // add slash
strcat(temp, dir);
k70.p21 = temp;
}

View File

@ -6,7 +6,7 @@ kol_struct70 k70;
kol_struct_BDVK bdvk;
unsigned result, filesize, pos, i;
char buf[81]; //¡ãä¥à
char temp[256];
char temp[FILENAME_MAX];
unsigned flags;
if (strlen(file)<1)

View File

@ -3,7 +3,7 @@ int cmd_rm(char file[])
{
kol_struct70 k70;
char temp[256];
char temp[FILENAME_MAX];
unsigned result;
if (NULL == file || strlen(file) == 0)
@ -28,6 +28,8 @@ if ( '/' == file[0])
else
{
strcpy(temp, cur_dir);
if (temp[strlen(temp)-1] != '/')
strcat(temp, "/"); // add slash
strcat(temp, file);
if ( !file_check(temp) )

View File

@ -2,7 +2,7 @@
int cmd_rmdir(char dir[])
{
char temp[256];
char temp[FILENAME_MAX];
kol_struct70 k70;
unsigned result;
@ -33,6 +33,8 @@ if ( '/' == dir[0])
else
{
strcpy(temp, cur_dir);
if (temp[strlen(temp)-1] != '/')
strcat(temp, "/"); // add slash
strcat(temp, dir);
k70.p21 = temp;
}

View File

@ -3,7 +3,7 @@ int cmd_touch(char file[])
{
kol_struct70 k70;
char temp[256];
char temp[FILENAME_MAX];
unsigned result;
if (NULL == file || strlen(file) == 0)
@ -33,6 +33,8 @@ if ( '/' == file[0])
else
{
strcpy(temp, cur_dir);
if (temp[strlen(temp)-1] != '/')
strcat(temp, "/"); // add slash
strcat(temp, file);
if ( !file_check(temp) )
k70.p00 = 2;
@ -47,6 +49,8 @@ k70.p16 = 0;
k70.p20 = 0;
k70.p21 = temp;
//printf("try to touch [%s], fn70(%d)\n\r", temp, k70.p00);
result = kol_file_70(&k70);
if (0 == result)

View File

@ -4,7 +4,7 @@
int executable_run(char cmd[], char args[])
{
char exec[256];
char exec[FILENAME_MAX];
int result;
if ( '/' == cmd[0]) // メ<> <20><20><EFBFBD>鈞㈲<E9889E>

View File

@ -121,6 +121,13 @@ strcpy(title, "SHELL ");
strcat(title, SHELL_VERSION);
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);
dir_truncate(cur_dir);

View File

@ -12,6 +12,7 @@
#define E_NOMEM 30
#define E_PARAM 33
#define FILENAME_MAX 1024
#pragma pack(push,1)
typedef struct