Subversion Repositories Kolibri OS

Rev

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

  1.  
  2. #include "all.h"
  3.  
  4. /// ===========================================================
  5.  
  6. int dir_check(char dir[])
  7. {
  8. kol_struct70    k70;
  9. int             result;
  10.  
  11. k70.p00 = 1;
  12. k70.p04 = 0;
  13. k70.p08 = 0;
  14. k70.p12 = 2*1024*1024; // 2 MB
  15. k70.p16 = malloc(2*1024*1024);
  16. k70.p20 = 0;
  17. k70.p21 = dir;
  18.  
  19. result = kol_file_70(&k70);
  20.  
  21. free(k70.p16);
  22.  
  23. if ( (0 == result)||(6 == result) )
  24.         return TRUE;
  25. else
  26.         return FALSE;
  27.  
  28. }
  29.  
  30. /// ===========================================================
  31.  
  32. void dir_truncate(char dir[])
  33. {
  34. int i;
  35. i = strlen(dir)-1;
  36. for (;;i--)
  37.         if ('/' == dir[i])
  38.                 {
  39.                 dir[i+1] = 0;
  40.                 break;
  41.                 }
  42. }
  43.  
  44. /// ===========================================================
  45.  
  46. int file_check(char file[])
  47. {
  48. kol_struct70    k70;
  49. int             result;
  50.  
  51. k70.p00 = 0;
  52. k70.p04 = 0;
  53. k70.p08 = 0;
  54. k70.p12 = 0;
  55. k70.p16 = 0;
  56. k70.p20 = 0;
  57. k70.p21 = file;
  58.  
  59. result = kol_file_70(&k70);
  60.  
  61. if (0 == result)
  62.         return TRUE;
  63. else
  64.         return FALSE;
  65. }
  66.  
  67. /// ===========================================================
  68.  
  69. int iswhite(char c)
  70. {
  71. return ((' ' == c) || ('\t' == c) || (13 == c) || (10 == c));
  72. }
  73.  
  74. /// ===========================================================
  75.  
  76. void trim(char string[])
  77. {
  78. int i, j;
  79.  
  80. for (i=0; ;i++)
  81.         if ( !iswhite(string[i]) )
  82.                 break;
  83. j = 0;
  84. for (;;i++, j++)
  85.         {
  86.         string[j] = string[i];
  87.         if ('\0' == string[i] )
  88.                 break;
  89.         }
  90.  
  91. for (i=0; ;i++)
  92.         if ('\0' == string[i])
  93.                 break;
  94. i--;
  95. for (;i>0;--i)
  96.         if ( iswhite(string[i]) )
  97.                 string[i] = '\0';
  98.         else
  99.                 break;
  100. }
  101.  
  102. /// ===========================================================
  103.  
  104. void kol_main()
  105. {
  106.  
  107. strcpy(title, "SHELL ");
  108. strcat(title, SHELL_VERSION);
  109. CONSOLE_INIT(title);
  110.  
  111. strcpy(cur_dir, PATH);
  112. dir_truncate(cur_dir);
  113.  
  114. con_set_cursor_height(con_get_font_height()-1);
  115.  
  116. if (strlen(PARAM) > 0)
  117.         strcpy(CMD, PARAM);
  118. else
  119.         strcpy(CMD, ".shell");
  120.  
  121. command_execute();
  122.  
  123. for (;;)
  124.         {
  125.         printf ("# ");
  126.         command_get();
  127.         command_execute();
  128.         }
  129.  
  130. _exit(0);
  131. kol_exit();
  132. }
  133.  
  134. /// ===========================================================
  135.