Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. int cmd_more(char file[])
  3. {
  4.  
  5. kol_struct70    k70;
  6. kol_struct_BDVK bdvk;
  7. unsigned        result, filesize, pos, i;
  8. char            buf[81]; //áóôåð
  9. char            temp[256];
  10. unsigned        flags;
  11.  
  12. if (NULL == file)
  13.         {
  14.         printf ("  less filename\n\r");
  15.         return FALSE;
  16.                 }
  17.  
  18. if ( '/' == file[0])
  19.         {
  20.         strcpy(temp, file);
  21.  
  22.         if ( !file_check(temp) )
  23.                 {
  24.                 return FALSE;
  25.                 }
  26.         }
  27. else
  28.         {
  29.         strcpy(temp, cur_dir);
  30.         strcat(temp, file);
  31.        
  32.         if ( !file_check(temp) )
  33.                 {
  34.                 return FALSE;
  35.                 }
  36.         }
  37.  
  38. k70.p00 = 5;
  39. k70.p04 = k70.p08 = k70.p12 = 0;
  40. k70.p16 = &bdvk;
  41. k70.p20 = 0;
  42. k70.p21 = temp;
  43.  
  44. result = kol_file_70(&k70); // ïîëó÷àåì èíôîðìàöèþ î ôàéëå
  45. if ( 0 != result )
  46.         return FALSE;
  47.  
  48. filesize = bdvk.p32[0]; // ïîëó÷àåì ðàçìåð ôàéëà
  49.  
  50. buf[80]=0;
  51. flags = con_get_flags();
  52.  
  53. for (pos=0;pos<filesize;pos+=80)
  54.         {
  55.  
  56.         memset(buf, 0, 80);
  57.  
  58.         k70.p00 = 0;
  59.         k70.p04 = pos;
  60.         k70.p08 = 0;
  61.         k70.p12 = 80;
  62.         k70.p16 = buf;
  63.         k70.p20 = 0;
  64.         k70.p21 = temp;
  65.  
  66.         result = kol_file_70(&k70); // ÷òåíèå 80 ñèìâîëîâ
  67.         for (i=0; i<80; i++)
  68.                 {
  69.  
  70.                 if (27 == buf[i])
  71.                         con_set_flags(flags|0x100);
  72.                 else con_set_flags(flags);
  73.  
  74.                 printf ("%c", buf[i]);
  75.                 }
  76.         if ( 0 != result )
  77.                 {
  78.                 con_set_flags(flags);
  79.                 printf ("\n\r");
  80.                 return TRUE;   
  81.                 }
  82.  
  83.         }
  84. con_set_flags(flags);
  85. printf ("\n\r");
  86. return TRUE;
  87. }
  88.