diff options
Diffstat (limited to 'smash/main.c')
| -rw-r--r-- | smash/main.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/smash/main.c b/smash/main.c index e36744d..cf5f47f 100644 --- a/smash/main.c +++ b/smash/main.c @@ -1,6 +1,7 @@ #include "exec.h" #include "comment.h" #include "env.h" +#include "variable.h" #include "../lib/sys/io.h" #include "../lib/cstr/cstr.h" @@ -19,6 +20,7 @@ int main(int argc, char *argv[]) int fd = STDIN_FD; char linebuf[BUFSIZ]; char *line; + char *line_exec; init_arg_env(argc, (const char**)argv); @@ -43,12 +45,15 @@ int main(int argc, char *argv[]) remove_comment(linebuf); line = new_line_and_replace_vars(linebuf, BUFSIZ); - line_length = cstr_length(line); + line_exec = setup_variable_line_context(line); + line_length = cstr_length(line_exec); if (line_length > 0) { - exec(line); + exec(line_exec); } + cleanup_variable_line_context(); + free(line); } |