diff --git a/src/pebblisp.c b/src/pebblisp.c index accd9af..d0789a3 100644 --- a/src/pebblisp.c +++ b/src/pebblisp.c @@ -557,25 +557,28 @@ Object parseEval(const char *input, struct Environment *env) } #ifdef STANDALONE -int read_file(const char *filename, struct Environment *env) { +int readFile(const char *filename, struct Environment *env) { FILE *input = fopen(filename, "r"); if(!input) { return 1; } Object r = numberObject(0); - char buf[256]; - if(fgets(buf, 256, input)){ - if(buf[0] != '#' || buf[1] != '!') { - r = parseEval(buf, env); - printAndClean(&r); + char page[4096] = ""; + char line[256]; + if(fgets(line, 256, input)){ + if(line[0] != '#' || line[1] != '!') { + strncat(page, line, strlen(line) - 1); } } - while(fgets(buf, 256, input)) { - if(buf[0] != ';') { - r = parseEval(buf, env); - printAndClean(&r); + while(fgets(line, 256, input)) { + if(line[0] != ';') { + strncat(page, line, strlen(line) - 1); } } + + r = parseEval(page, env); + printAndClean(&r); + fclose(input); return 0; } @@ -595,7 +598,7 @@ int main(int argc, const char* argv[]) { struct Environment env = defaultEnv(); if(argc >= 2) { - if(read_file(argv[1], &env) != 0) { + if(readFile(argv[1], &env) != 0) { Object r = numberObject(0); for(int i = 1; i < argc; i++) { r = parseEval(argv[i], &env);