aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar BanceDev 2024-09-12 09:13:01 -0400
committerGravatar BanceDev 2024-09-12 09:13:01 -0400
commit2870751be3f8874378f1a383e6d264b87195580d (patch)
treef4a2d13121723140cd44bebc69b01c7db48a6c21 /src
parentupdated buffer size for date to account for compiler warning (diff)
added e2e testing to cover basic shell functionality
Diffstat (limited to 'src')
-rw-r--r--src/lua_api.c6
-rw-r--r--src/lush.c3
-rw-r--r--src/lush.h1
3 files changed, 6 insertions, 4 deletions
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);