/*
Iulian Radu [v2.0@07.1999]
*/
int apos=-1; //memorize position of a free cell
char* findalias(char* buf){
int i;
apos=-1;
for(i=0;i<nalias;i++){
if(!strcmp(aliasn[i],buf))
return aliasi[i];
if(!aliasn[i][0]) apos=i; //no need to scan all defined aliases
}
if(strncmp(buf,"HOST_",5)) return NULL;
return findhost(buf+5);
}
void falias(char* buf){
char alias[129],*replace;
sscanf(buf,"%s",alias);
replace=findnsp(buf,1);
if(findalias(alias))
fprintf(stderr,err[7],alias);
else
if(apos<0){
strcpy(aliasn[nalias],alias);
strcpy(aliasi[nalias],replace);
nalias++;}
else{
strcpy(aliasn[apos],alias);
strcpy(aliasi[apos],replace);}
}
void fcheck4alias(char* buf){
if(!strcasecmp(buf,"yes")){
usealias=1;
return;}
if(!strcasecmp(buf,"no")){
usealias=0;
return;}
fprintf(stderr,err[11],buf);
}
char* expand(char* str){
char buf[257],al[129];
int i,j,k;
char* alias;
for(i=j=0;str[i];i++,j++)
if(str[i]!='%') buf[j]=str[i];
else{
for(i++,k=0;(str[i]) && (str[i]!='%');i++,k++)
al[k]=str[i];
al[k]=0;
alias=findalias(al);
if(!alias){
fprintf(stderr,err[8],al);
return str;}
strcpy(buf+j,alias);
j+=strlen(alias)-1;}
buf[j]=0;
strcpy(str,buf);
return str;
}
void fdelalias(char* buf){
int i;
for(i=0;i<nalias;i++)
if(!strcmp(aliasn[i],buf))
aliasn[i][0]=0;
}