fix: alias doesn't print
This commit is contained in:
parent
a36b4ecdab
commit
f1b1ff0ede
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user