From: Mart Lubbers <mart@martlubbers.net>
Date: Thu, 25 Aug 2016 13:38:59 +0000 (+0200)
Subject: clean up code
X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=3734ca0441d930e4cd57758b6f49d0b0b6153451;p=bf.git

clean up code
---

diff --git a/Makefile b/Makefile
index a8f241a..15107c0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,4 @@
 PROGRAM:=bf
-CFLAGS:=-Wall -Werror -g
 
 all: $(PROGRAM)
 
diff --git a/bf.c b/bf.c
index ef5dd39..23aa2da 100644
--- a/bf.c
+++ b/bf.c
@@ -9,18 +9,23 @@ struct nest {
 
 int main(int argc, char *argv[])
 {
-	size_t offset, stacksize = 1;
-	char *b = malloc(stacksize);
-	b[0] = 0;
-	char *ptr = b;
-	struct nest *t, *callstack = NULL;
+	size_t offset, stacksize;
+	char *buf, *ptr;
+	struct nest *temp, *stack;
 	FILE *in;
 
 	if(argc != 2){
 		fprintf(stderr, "Usage: %s PROGRAM\n", argv[0]);
 		return EXIT_FAILURE;
 	}
-	
+   
+	if((buf = malloc(stacksize = 1)) == NULL){
+		perror("malloc");
+		return EXIT_FAILURE;
+	}
+	buf[0] = 0;
+	ptr = buf;
+
 	if((in = fopen(argv[1], "r")) == NULL){
 		perror("fopen");
 		return EXIT_FAILURE;
@@ -29,19 +34,22 @@ int main(int argc, char *argv[])
 	while(1){
 		switch(fgetc(in)){
 			case EOF:
-				free(b);
+				free(buf);
 				return EXIT_SUCCESS;
 			case '>':
 				++ptr;
-				if(ptr >= b+stacksize){
-					offset = ptr-b;
-					b = realloc(b, stacksize *= 2);
-					ptr = b+offset;
+				if(ptr >= buf+stacksize){
+					offset = ptr-buf;
+					if((buf = realloc(buf, stacksize *= 2)) == NULL){
+						perror("realloc");
+						return EXIT_FAILURE;
+					}
+					ptr = buf+offset;
 					memset(ptr, 0, stacksize/2);
 				}
 				break;
 			case '<':
-				if(ptr == b){
+				if(ptr == buf){
 					fprintf(stderr, "There is no stack position -1...\n");
 					return EXIT_FAILURE;
 				}
@@ -61,10 +69,13 @@ int main(int argc, char *argv[])
 				break;
 			case '[':
 				if(*ptr){
-					t = callstack;
-					callstack = malloc(sizeof(struct nest));
-					callstack->next = t;
-					if((callstack->pos = ftell(in)) == -1){
+					temp = stack;
+					if((stack = malloc(sizeof(struct nest))) == NULL){
+						perror("realloc");
+						return EXIT_FAILURE;
+					}
+					stack->next = temp;
+					if((stack->pos = ftell(in)) == -1){
 						perror("ftell");
 						return EXIT_FAILURE;
 					}
@@ -73,13 +84,13 @@ int main(int argc, char *argv[])
 				}
 				break;
 			case ']':
-				if(fseek(in, callstack->pos-1, SEEK_SET) == -1){
+				if(fseek(in, stack->pos-1, SEEK_SET) == -1){
 					perror("fseek");
 					return EXIT_FAILURE;
 				}
-				t = callstack;
-				callstack = callstack->next;
-				free(t);
+				temp = stack;
+				stack = stack->next;
+				free(temp);
 				break;
 			default:
 				break;