repositories
/
bf.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
19a8fd1
)
clean up code
author
Mart Lubbers
<mart@martlubbers.net>
Thu, 25 Aug 2016 13:38:59 +0000
(15:38 +0200)
committer
Mart Lubbers
<mart@martlubbers.net>
Thu, 25 Aug 2016 13:38:59 +0000
(15:38 +0200)
Makefile
patch
|
blob
|
history
bf.c
patch
|
blob
|
history
diff --git
a/Makefile
b/Makefile
index
a8f241a
..
15107c0
100644
(file)
--- a/
Makefile
+++ b/
Makefile
@@
-1,5
+1,4
@@
PROGRAM:=bf
PROGRAM:=bf
-CFLAGS:=-Wall -Werror -g
all: $(PROGRAM)
all: $(PROGRAM)
diff --git
a/bf.c
b/bf.c
index
ef5dd39
..
23aa2da
100644
(file)
--- a/
bf.c
+++ b/
bf.c
@@
-9,18
+9,23
@@
struct nest {
int main(int argc, char *argv[])
{
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;
}
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;
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:
while(1){
switch(fgetc(in)){
case EOF:
- free(b);
+ free(b
uf
);
return EXIT_SUCCESS;
case '>':
++ptr;
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 '<':
memset(ptr, 0, stacksize/2);
}
break;
case '<':
- if(ptr == b){
+ if(ptr == b
uf
){
fprintf(stderr, "There is no stack position -1...\n");
return EXIT_FAILURE;
}
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){
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;
}
perror("ftell");
return EXIT_FAILURE;
}
@@
-73,13
+84,13
@@
int main(int argc, char *argv[])
}
break;
case ']':
}
break;
case ']':
- if(fseek(in,
call
stack->pos-1, SEEK_SET) == -1){
+ if(fseek(in, stack->pos-1, SEEK_SET) == -1){
perror("fseek");
return EXIT_FAILURE;
}
perror("fseek");
return EXIT_FAILURE;
}
- t
= call
stack;
-
callstack = call
stack->next;
- free(t);
+ t
emp =
stack;
+
stack =
stack->next;
+ free(t
emp
);
break;
default:
break;
break;
default:
break;