diff --git a/include/parser.h b/include/parser.h index d8fe780..765baef 100644 --- a/include/parser.h +++ b/include/parser.h @@ -17,6 +17,7 @@ typedef struct parser_map { } parser_map; char **parse_input(char *cmd, env_t *env); +void free_array(char **array); int parse_quotes(char *ptr, char **data, env_t *env); int parse_double_quotes(char *ptr, char **data, env_t *env); diff --git a/src/parser/parser_vars_utilities.c b/src/parser/parser_vars_utilities.c index a1ca9e6..8966453 100644 --- a/src/parser/parser_vars_utilities.c +++ b/src/parser/parser_vars_utilities.c @@ -70,4 +70,12 @@ char *process_vars(char *cmd, env_t *env) free(name); } return (cmd); +} + +void free_array(char **array) +{ + for (int i = 0; array[i]; i++) { + free(array[i]); + } + free(array); } \ No newline at end of file diff --git a/src/prompt.c b/src/prompt.c index cfa8c40..3446f26 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -40,7 +40,7 @@ int prompt_run(char *cmd, redirection *inout[2], env_t *env) } if (!argv[0]) return (0); - argv = globbing(argv); + //argv = globbing(argv); if (!argv) return (0); if (env->window && inout[1] == NULL) @@ -51,7 +51,7 @@ int prompt_run(char *cmd, redirection *inout[2], env_t *env) if (!strcmp(argv[0], builtins[i].name)) return (run_builtin(&builtins[i], argv, inout, env)); run_cmd(argv, inout, env); - free(argv); + free_array(argv); return (0); }