mirror of
https://github.com/zoriya/ash.git
synced 2026-06-08 12:32:14 +00:00
fix unalias
This commit is contained in:
@@ -33,6 +33,7 @@ void free_alias(alias_t *alias)
|
|||||||
|
|
||||||
void remove_alias(char *alias, alias_t **list)
|
void remove_alias(char *alias, alias_t **list)
|
||||||
{
|
{
|
||||||
|
alias_t *prev = NULL;
|
||||||
alias_t *tmp = *list;
|
alias_t *tmp = *list;
|
||||||
|
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
@@ -42,15 +43,14 @@ void remove_alias(char *alias, alias_t **list)
|
|||||||
free_alias(tmp);
|
free_alias(tmp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (alias_t *ptr = *list; ptr->next; ptr = ptr->next) {
|
prev = tmp;
|
||||||
if (strcmp(ptr->next->alias, alias) == 0) {
|
tmp = tmp->next;
|
||||||
tmp = ptr->next;
|
for (; tmp; tmp = tmp->next) {
|
||||||
ptr->next = ptr->next->next;
|
if (strcmp(tmp->alias, alias) == 0) {
|
||||||
|
prev->next = tmp->next;
|
||||||
free_alias(tmp);
|
free_alias(tmp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
prev = tmp;
|
||||||
}
|
}
|
||||||
for (tmp = *list; tmp; tmp = tmp->next->next);
|
|
||||||
free_alias(tmp->next);
|
|
||||||
tmp->next = NULL;
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user