diff --git a/src/builtin-exec/builtin.c b/src/builtin-exec/builtin.c index d69ecee..58ddceb 100644 --- a/src/builtin-exec/builtin.c +++ b/src/builtin-exec/builtin.c @@ -55,7 +55,7 @@ int where(char** args, lst** env) return 0; } -int builtin_execute(cmd_t* input, data_t *data, int fd_in, int fd_out) +int builtin_execute(data_t* data, cmd_t* input) { if (input->executable == NULL) return 1; @@ -70,7 +70,7 @@ int builtin_execute(cmd_t* input, data_t *data, int fd_in, int fd_out) return 0; } else if (strcmp(input->executable, "alias") == 0) - return builtin_alias(fd_in, fd_out, data->aliases, input->args); + return builtin_alias(data, input); else { return 1; diff --git a/src/builtin-exec/builtin.h b/src/builtin-exec/builtin.h index b0235d3..1f689e8 100644 --- a/src/builtin-exec/builtin.h +++ b/src/builtin-exec/builtin.h @@ -12,9 +12,9 @@ #include "../../lib/bozolib/bozolib.h" char* builtin_path(const char* executable); -int builtin_execute(cmd_t* input, data_t* data, int fd_in, int fd_out); +int builtin_execute(data_t* data, cmd_t* cmd); -int builtin_alias(int fd_in, int fd_out, lst** aliases, char** args); +int builtin_alias(data_t* data, cmd_t* cmd); int change_directory(char** args, lst** env); int where(char** args, lst** env); diff --git a/src/builtin-exec/builtin_alias.c b/src/builtin-exec/builtin_alias.c index efa6a2c..2d686d0 100644 --- a/src/builtin-exec/builtin_alias.c +++ b/src/builtin-exec/builtin_alias.c @@ -15,29 +15,28 @@ static void print_aliases(lst** aliases, int fd_out) current = current->next; } } -int builtin_alias(int fd_in, int fd_out, lst** aliases, char **args) +int builtin_alias(data_t* data, cmd_t* cmd) { const char* equal; char* result; char* key; - (void)fd_in; - if (tablen((const void**) args) == 1) - print_aliases(aliases, fd_out); - for (size_t i = 1; args[i] != NULL; i++) + if (tablen((const void**) cmd->args) == 1) + print_aliases(data->aliases, cmd->output[0]); + for (size_t i = 1; cmd->args[i] != NULL; i++) { - equal = strchr(args[i], '='); + equal = strchr(cmd->args[i], '='); if (equal == NULL) { - result = get_alias(aliases, args[i]); + result = get_alias(data->aliases, cmd->args[i]); if (result != NULL) - dprintf(fd_out, "%s=%s\n", args[i], result); + dprintf(cmd->output[0], "%s=%s\n", cmd->args[i], result); } else { - key = strndup(args[i], equal - args[i]); + key = strndup(cmd->args[i], equal - cmd->args[i]); if (key == NULL) return 1; - if (add_alias(aliases, key, equal + 1)) + if (add_alias(data->aliases, key, equal + 1)) { free(key); return 1; diff --git a/src/exec/exec.c b/src/exec/exec.c index 1bd0019..79d2a93 100644 --- a/src/exec/exec.c +++ b/src/exec/exec.c @@ -127,7 +127,7 @@ int cmds_list_exec(lst** cmds, data_t *data) add_fd(content->output, fds[1]); add_fd(((cmd_t*)current->next->content)->input, fds[0]); } - if (builtin_execute(content, data, fds[0], fds[1]) == 1) + if (builtin_execute(data, content) == 1) { if (execute(cmds, content, data->env)) {