fix: args[0] aliased is now edited too
This commit is contained in:
parent
b073baa06b
commit
52612b9aa5
@ -2,24 +2,16 @@
|
||||
|
||||
char* parsing_executable(const char* executable, data_t *data)
|
||||
{
|
||||
const char* tmp;
|
||||
if (executable == NULL)
|
||||
return NULL;
|
||||
if (executable[0] == '\\')
|
||||
tmp = executable + 1;
|
||||
else
|
||||
{
|
||||
tmp = get_alias(data->aliases, executable);
|
||||
if (tmp == NULL)
|
||||
tmp = executable;
|
||||
}
|
||||
if (strchr("./", tmp[0]))
|
||||
return strdup(tmp);
|
||||
return (get_executable_path(tmp, data->env));
|
||||
if (strchr("./", executable[0]))
|
||||
return strdup(executable);
|
||||
return (get_executable_path(executable, data->env));
|
||||
}
|
||||
|
||||
int parsing_cmd(char *str, cmd* command, data_t *data)
|
||||
{
|
||||
char* tmp;
|
||||
if (get_redirections(str, command))
|
||||
return 1;
|
||||
command->args = split_quoted_charset(str, "\t ");
|
||||
@ -27,6 +19,26 @@ int parsing_cmd(char *str, cmd* command, data_t *data)
|
||||
return 1;
|
||||
for (size_t i = 0; command->args[i]; i++)
|
||||
quote_remover(command->args[i]);
|
||||
if (command->args[0][0] == '\\')
|
||||
{
|
||||
tmp = strdup(command->args[0] + 1);
|
||||
if (tmp != NULL)
|
||||
{
|
||||
free(command->args[0]);
|
||||
command->args[0] = strdup(tmp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = get_alias(data->aliases, command->args[0]);
|
||||
if (tmp != NULL)
|
||||
{
|
||||
free(command->args[0]);
|
||||
command->args[0] = strdup(tmp);
|
||||
}
|
||||
}
|
||||
if (command->args[0] == NULL)
|
||||
return 1;
|
||||
command->executable = parsing_executable(command->args[0], data);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user