Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. /// ===========================================================
  3.  
  4. int alias_check(char alias[])
  5. {
  6.  
  7. unsigned i;
  8. char buf1[256];
  9. char buf2[256];
  10.  
  11. if ( !alias_split (alias, buf1, buf2))
  12.         return FALSE;
  13.  
  14. for (i = 0; i < NUM_OF_CMD; i++)
  15.         if ( !strcmp(HELP_COMMANDS[i], buf1) )
  16.                 return -1;
  17.  
  18. if (NULL == ALIASES)
  19.         ALIASES = malloc(128*1024);
  20.  
  21. if (NULL == ALIASES)
  22.         return FALSE;
  23.  
  24. if ( 0 == ALIAS_NUM )
  25.         return FALSE;
  26.  
  27. for (i = 0; i < ALIAS_NUM; i++)
  28.         {
  29.         if ( !strcmp(ALIASES+256*i, buf1) )
  30.                 return TRUE;
  31.         }
  32.  
  33. return FALSE;
  34.  
  35. }
  36.  
  37.  
  38. /// ===========================================================
  39.  
  40. int alias_search(char alias[])
  41. {
  42.  
  43. unsigned i;
  44.  
  45. for (i = 0; i < ALIAS_NUM; i++)
  46.         {
  47.         if ( !strcmp(ALIASES+256*i, alias) )
  48.                 return i;
  49.         }
  50.  
  51. return -1;
  52. }
  53.  
  54. /// ===========================================================
  55.  
  56. int alias_add(char alias[])
  57. {
  58.  
  59. char buf1[256];
  60. char buf2[256];
  61.  
  62. if ( ALIAS_NUM > 255)
  63.         return FALSE;
  64.  
  65. if ( !alias_split (alias, buf1, buf2))
  66.         return FALSE;
  67.  
  68. strcpy (ALIASES+256*ALIAS_NUM, buf1);
  69. strcpy (ALIASES+256*ALIAS_NUM+64*1024, buf2);
  70. ALIAS_NUM++;
  71.  
  72. return TRUE;
  73. }
  74.  
  75. /// ===========================================================
  76.  
  77. void alias_list()
  78. {
  79.  
  80. unsigned i;
  81.  
  82. if ( 0 == ALIAS_NUM)
  83.         return;
  84.  
  85. for (i = 0; i < ALIAS_NUM; i++)
  86.         printf ("  %s=%s\n\r",ALIASES+256*i, ALIASES+256*i+64*1024);
  87. }
  88.  
  89. /// ===========================================================
  90.  
  91. int alias_split (char alias[], char s1[], char s2[])
  92. {
  93.  
  94. unsigned i, j;
  95.  
  96. if (NULL == strchr(alias, '='))
  97.         return FALSE;
  98.  
  99. for (i=0, j = 0;; i++)
  100.         {
  101.         if ('=' == alias[i])
  102.                 {
  103.                 s1[i]='\0';
  104.                 break;
  105.                 }
  106.         s1[i]=alias[i];
  107.         }
  108.  
  109. j = 0;
  110.  
  111. for (;; i++, j++)
  112.         {
  113.         s2[j]=alias[i];
  114.         if ('\0' == alias[i])
  115.                 break;
  116.         }
  117.  
  118. trim(s1);
  119.  
  120. for (i=0;;i++)
  121.         {
  122.         s2[i] = s2[i+1];
  123.         if ('\0' == s2[i] )
  124.                 break;
  125.         }
  126.  
  127. trim(s2);
  128.  
  129. return TRUE;
  130.  
  131. }
  132.  
  133. /// ===========================================================
  134.