fix: alias doesn't print

This commit is contained in:
starnakin 2023-07-05 00:14:39 +02:00
parent a36b4ecdab
commit f1b1ff0ede
4 changed files with 14 additions and 15 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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))
{