Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 958 → Rev 959

/programs/system/shell/module_alias.c
0,0 → 1,133
 
/// ===========================================================
 
int alias_check(char alias[])
{
 
unsigned i;
char buf1[256];
char buf2[256];
 
if ( !alias_split (alias, buf1, buf2))
return FALSE;
 
for (i = 0; i < NUM_OF_CMD; i++)
if ( !strcmp(HELP_COMMANDS[i], buf1) )
return -1;
 
if (NULL == ALIASES)
ALIASES = malloc(128*1024);
 
if (NULL == ALIASES)
return FALSE;
 
if ( 0 == ALIAS_NUM )
return FALSE;
 
for (i = 0; i < ALIAS_NUM; i++)
{
if ( !strcmp(ALIASES+256*i, buf1) )
return TRUE;
}
 
return FALSE;
 
}
 
 
/// ===========================================================
 
int alias_search(char alias[])
{
 
unsigned i;
 
for (i = 0; i < ALIAS_NUM; i++)
{
if ( !strcmp(ALIASES+256*i, alias) )
return i;
}
 
return -1;
}
 
/// ===========================================================
 
int alias_add(char alias[])
{
 
char buf1[256];
char buf2[256];
 
if ( ALIAS_NUM > 255)
return FALSE;
 
if ( !alias_split (alias, buf1, buf2))
return FALSE;
 
strcpy (ALIASES+256*ALIAS_NUM, buf1);
strcpy (ALIASES+256*ALIAS_NUM+64*1024, buf2);
ALIAS_NUM++;
 
return TRUE;
}
 
/// ===========================================================
 
void alias_list()
{
 
unsigned i;
 
if ( 0 == ALIAS_NUM)
return;
 
for (i = 0; i < ALIAS_NUM; i++)
printf (" %s=%s\n\r",ALIASES+256*i, ALIASES+256*i+64*1024);
}
 
/// ===========================================================
 
int alias_split (char alias[], char s1[], char s2[])
{
 
unsigned i, j;
 
if (NULL == strchr(alias, '='))
return FALSE;
 
for (i=0, j = 0;; i++)
{
if ('=' == alias[i])
{
s1[i]='\0';
break;
}
s1[i]=alias[i];
}
 
j = 0;
 
for (;; i++, j++)
{
s2[j]=alias[i];
if ('\0' == alias[i])
break;
}
 
trim(s1);
 
for (i=0;;i++)
{
s2[i] = s2[i+1];
if ('\0' == s2[i] )
break;
}
 
trim(s2);
 
return TRUE;
 
}
 
/// ===========================================================