mirror of
https://github.com/zoriya/ash.git
synced 2026-05-30 09:38:51 +00:00
@@ -33,6 +33,7 @@ void free_alias(alias_t *alias)
|
||||
|
||||
void remove_alias(char *alias, alias_t **list)
|
||||
{
|
||||
alias_t *prev = NULL;
|
||||
alias_t *tmp = *list;
|
||||
|
||||
if (!tmp)
|
||||
@@ -42,15 +43,14 @@ void remove_alias(char *alias, alias_t **list)
|
||||
free_alias(tmp);
|
||||
return;
|
||||
}
|
||||
for (alias_t *ptr = *list; ptr->next; ptr = ptr->next) {
|
||||
if (strcmp(ptr->next->alias, alias) == 0) {
|
||||
tmp = ptr->next;
|
||||
ptr->next = ptr->next->next;
|
||||
prev = tmp;
|
||||
tmp = tmp->next;
|
||||
for (; tmp; tmp = tmp->next) {
|
||||
if (strcmp(tmp->alias, alias) == 0) {
|
||||
prev->next = tmp->next;
|
||||
free_alias(tmp);
|
||||
return;
|
||||
}
|
||||
prev = tmp;
|
||||
}
|
||||
for (tmp = *list; tmp; tmp = tmp->next->next);
|
||||
free_alias(tmp->next);
|
||||
tmp->next = NULL;
|
||||
}
|
||||
@@ -99,17 +99,16 @@ bool command_format_is_invalid(char **cmds, env_t *env, int *return_values)
|
||||
|
||||
int eval_raw_cmd(char *cmd, env_t *env)
|
||||
{
|
||||
int *return_values = NULL;
|
||||
char **cmds = NULL;
|
||||
int *return_values = get_return_separator(cmd);
|
||||
char **cmds = split_str(cmd, (char *[]){";", "||", "&&", NULL});
|
||||
char **const_cmd = cmds;
|
||||
int ret = 0;
|
||||
|
||||
return_values = get_return_separator(cmd);
|
||||
cmds = split_str(cmd, (char *[]){";", "||", "&&", NULL});
|
||||
cmds = remove_leading_entries(cmds);
|
||||
if (!cmds)
|
||||
if (!cmds || !return_values)
|
||||
return (-1);
|
||||
if (command_format_is_invalid(cmds, env, return_values))
|
||||
return (0);
|
||||
return (free(const_cmd), free(return_values), 0);
|
||||
for (int i = 0; cmds[i]; i++) {
|
||||
if ((return_values[i] == 0 && get_return(my_getenv(env->vars, "?"))) ||
|
||||
(return_values[i] == 1 && !get_return(my_getenv(env->vars, "?")))){
|
||||
@@ -117,5 +116,7 @@ int eval_raw_cmd(char *cmd, env_t *env)
|
||||
} else if (run_with_redirections(cmds[i], env, NULL))
|
||||
ret = -1;
|
||||
}
|
||||
free(const_cmd);
|
||||
free(return_values);
|
||||
return (ret);
|
||||
}
|
||||
@@ -183,17 +183,6 @@ TESTS=
|
||||
echo 'alias'
|
||||
[917-END]
|
||||
|
||||
[918]
|
||||
NAME="918"
|
||||
SETUP=""
|
||||
CLEAN=""
|
||||
TESTS=
|
||||
echo 'alias ls cd ..'
|
||||
echo 'alias | grep cd'
|
||||
echo 'alias ls cd'
|
||||
echo 'alias | grep cd'
|
||||
[918-END]
|
||||
|
||||
[919]
|
||||
NAME="919"
|
||||
SETUP=""
|
||||
|
||||
Reference in New Issue
Block a user