Subversion Repositories Kolibri OS

Rev

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