From 2870751be3f8874378f1a383e6d264b87195580d Mon Sep 17 00:00:00 2001 From: BanceDev Date: Thu, 12 Sep 2024 09:13:01 -0400 Subject: added e2e testing to cover basic shell functionality --- src/lua_api.c | 6 ++++-- src/lush.c | 3 +-- src/lush.h | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/lua_api.c b/src/lua_api.c index 20f089c..77417db 100644 --- a/src/lua_api.c +++ b/src/lua_api.c @@ -94,8 +94,11 @@ void lua_run_init(lua_State *L) { // -- C funtions -- static int execute_command(lua_State *L, const char *line) { int status = 0; - char **commands = lush_split_pipes((char *)line); + lush_push_history(line); + char *expanded_line = lush_resolve_aliases((char *)line); + char **commands = lush_split_pipes(expanded_line); char ***args = lush_split_args(commands, &status); + if (status == -1) { fprintf(stderr, "lush: Expected end of quoted string\n"); } else if (lush_run(L, args, status) == 0) { @@ -105,7 +108,6 @@ static int execute_command(lua_State *L, const char *line) { for (int i = 0; args[i]; i++) { free(args[i]); } - lush_push_history(line); free(args); free(commands); return status; diff --git a/src/lush.c b/src/lush.c index 5b6fca1..f04d8d7 100644 --- a/src/lush.c +++ b/src/lush.c @@ -881,8 +881,7 @@ char *lush_read_line() { return buffer; } -// -- static helper for resolving aliases -- -static char *lush_resolve_aliases(char *line) { +char *lush_resolve_aliases(char *line) { // Allocate memory for the new string char *result = (char *)malloc(BUFFER_SIZE); if (!result) { diff --git a/src/lush.h b/src/lush.h index 27cf5db..15d4d71 100644 --- a/src/lush.h +++ b/src/lush.h @@ -22,6 +22,7 @@ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. void lush_add_alias(const char *alias, const char *command); char *lush_get_alias(char *alias); +char *lush_resolve_aliases(char *line); int lush_cd(lua_State *L, char ***args); int lush_help(lua_State *L, char ***args); -- cgit v1.2.3-59-g8ed1b