diff --git a/Makefile b/Makefile index 543f8c757b6904709f1b147a3ed61a3b98512558..02b31a62eef625d51451e9b5f3f9fbcb9b716f03 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ SOURCES := $(wildcard library/*.c) $(wildcard src/*.c) bin/eval: $(SOURCES) - clang $^ -g -Iinclude -fsanitize=address,undefined -lreadline -o bin/eval + clang $^ -g -Iinclude -fsanitize=address,undefined,leak -lreadline -o bin/eval clean: rm -f bin/* diff --git a/src/main.c b/src/main.c index 39224829788ffd25fc87536a8c1be94f0c98fa8f..1e1e3a555a4bb73752cd4456230e1f00928a6596 100644 --- a/src/main.c +++ b/src/main.c @@ -11,6 +11,10 @@ int main(int argc, char *argv[]) { char *temp = readline("expr> "); do { + if (!strcmp(temp, "exit") || !strcmp(temp, "quit")) { + free(temp); + return 0; + } add_history(temp); //expression_t *expr = expression_cfold(expression_parse(temp)); expression_t *expr = expression_parse(temp);