Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1664 → Rev 1665

/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;
}