From 776c3289402dad05dd45ad00cc193a439761849a Mon Sep 17 00:00:00 2001 From: Arthur-gtr Date: Mon, 21 Apr 2025 17:49:44 +0200 Subject: [PATCH] [ADD] colison in alias --- src/builtins/builtins_alias.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/builtins/builtins_alias.c b/src/builtins/builtins_alias.c index bc07747..e427fcb 100644 --- a/src/builtins/builtins_alias.c +++ b/src/builtins/builtins_alias.c @@ -72,7 +72,7 @@ char *array_nto_strdup(char **array, int i) } static -int add_alias(alias_t *alias, char **args) +int add_alias_array(alias_t *alias, char **args) { char **new_alias_array = realloc(alias->alias_array, sizeof(char *) * alias->size); @@ -91,6 +91,21 @@ int add_alias(alias_t *alias, char **args) return RETURN_SUCCESS; } +int add_alias(alias_t *alias, char **args) +{ + int replace = -1; + + for (size_t i = 0; i != alias->size - 1; i++) + if (!strcmp(args[1], alias->alias_array[i])) + replace = (int)(i); + if (replace == -1) + return add_alias_array(alias, args); + alias->size--; + free(alias->alias_to_replace[replace]); + alias->alias_to_replace[replace] = array_nto_strdup(args, 2); + return RETURN_SUCCESS; +} + int builtins_alias(ef_t *ef, char **args) { alias_t *alias = ef->exec_ctx->alias;