Subversion Repositories Kolibri OS

Rev

Rev 959 | Rev 3245 | 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. NUM_OF_CMD = sizeof(COMMANDS)/sizeof(COMMANDS[0]);
  108.  
  109. strcpy(title, "SHELL ");
  110. strcat(title, SHELL_VERSION);
  111. CONSOLE_INIT(title);
  112.  
  113. strcpy(cur_dir, PATH);
  114. dir_truncate(cur_dir);
  115.  
  116. con_set_cursor_height(con_get_font_height()-1);
  117.  
  118. ALIASES = malloc(128*1024);
  119.  
  120. if (strlen(PARAM) > 0)
  121.         strcpy(CMD, PARAM);
  122. else
  123.         strcpy(CMD, ".shell");
  124.  
  125. command_execute();
  126.  
  127. for (;;)
  128.         {
  129.         printf ("# ");
  130.         command_get();
  131.         command_execute();
  132.         }
  133.  
  134. _exit(0);
  135. kol_exit();
  136. }
  137.  
  138. /// ===========================================================
  139.