Try to be less strict about whitespace in files

This commit is contained in:
Sage Vaillancourt 2020-10-30 09:52:46 -04:00
parent b5648963a7
commit 99fc088d3e
1 changed files with 14 additions and 11 deletions

View File

@ -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);