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;
|
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)
|
if (input->executable == NULL)
|
||||||
return 1;
|
return 1;
|
||||||
@ -70,7 +70,7 @@ int builtin_execute(cmd_t* input, data_t *data, int fd_in, int fd_out)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if (strcmp(input->executable, "alias") == 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
|
else
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
#include "../../lib/bozolib/bozolib.h"
|
#include "../../lib/bozolib/bozolib.h"
|
||||||
|
|
||||||
char* builtin_path(const char* executable);
|
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 change_directory(char** args, lst** env);
|
||||||
int where(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;
|
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;
|
const char* equal;
|
||||||
char* result;
|
char* result;
|
||||||
char* key;
|
char* key;
|
||||||
(void)fd_in;
|
if (tablen((const void**) cmd->args) == 1)
|
||||||
if (tablen((const void**) args) == 1)
|
print_aliases(data->aliases, cmd->output[0]);
|
||||||
print_aliases(aliases, fd_out);
|
for (size_t i = 1; cmd->args[i] != NULL; i++)
|
||||||
for (size_t i = 1; args[i] != NULL; i++)
|
|
||||||
{
|
{
|
||||||
equal = strchr(args[i], '=');
|
equal = strchr(cmd->args[i], '=');
|
||||||
if (equal == NULL)
|
if (equal == NULL)
|
||||||
{
|
{
|
||||||
result = get_alias(aliases, args[i]);
|
result = get_alias(data->aliases, cmd->args[i]);
|
||||||
if (result != NULL)
|
if (result != NULL)
|
||||||
dprintf(fd_out, "%s=%s\n", args[i], result);
|
dprintf(cmd->output[0], "%s=%s\n", cmd->args[i], result);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
key = strndup(args[i], equal - args[i]);
|
key = strndup(cmd->args[i], equal - cmd->args[i]);
|
||||||
if (key == NULL)
|
if (key == NULL)
|
||||||
return 1;
|
return 1;
|
||||||
if (add_alias(aliases, key, equal + 1))
|
if (add_alias(data->aliases, key, equal + 1))
|
||||||
{
|
{
|
||||||
free(key);
|
free(key);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -127,7 +127,7 @@ int cmds_list_exec(lst** cmds, data_t *data)
|
|||||||
add_fd(content->output, fds[1]);
|
add_fd(content->output, fds[1]);
|
||||||
add_fd(((cmd_t*)current->next->content)->input, fds[0]);
|
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))
|
if (execute(cmds, content, data->env))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user