Subversion Repositories Kolibri OS

Rev

Rev 3245 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. int cmd_ls(char dir[])
  3. {
  4.  
  5. kol_struct70    k70;
  6. unsigned        *n;
  7. unsigned        num_of_file;
  8. unsigned        *t;
  9. unsigned        type_of_file;
  10. int             i;
  11.  
  12. k70.p00 = 1;
  13. k70.p04 = 0;
  14. k70.p08 = 0;
  15. k70.p12 = 2*1024*1024; // 2 MB
  16. k70.p16 = malloc(2*1024*1024);
  17. k70.p20 = 0;
  18.  
  19. /// !!!
  20. // Åñëè ls çàïóñêàåòñÿ áåç ïàðàìåòðîâ, ïðîñìàòðèâàåì òåêóùèé êàòàëîã
  21. if ( !strlen(dir) )
  22.         k70.p21 = cur_dir;
  23. else
  24.         k70.p21 = dir;
  25.        
  26. if ( !kol_file_70(&k70) ) // ïðîâåðÿåì ñóùåñòâîâàíèå êàòàëîãà
  27.         {
  28.         free(k70.p16);
  29.         return FALSE;
  30.         }
  31.  
  32. n = k70.p16+8;
  33. num_of_file = *n; // ÷èñëî ôàéëîâ â êàòàëîãå
  34.  
  35. for (i = 0; i < num_of_file; i++)
  36.         {
  37.         printf ("  %s", k70.p16+32+40+(264+40)*i);
  38.         t = k70.p16+32+(264+40)*i;
  39.         type_of_file = *t;
  40.         if ( (0x10 == (type_of_file&0x10)) || (8 == (type_of_file&8)) )
  41.                 printf ("/");
  42.         printf ("\n\r");
  43.         }
  44.  
  45. free(k70.p16);
  46. return TRUE;
  47. }
  48.