summaryrefslogtreecommitdiff
path: root/src/bin/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/main.c')
-rw-r--r--src/bin/main.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/bin/main.c b/src/bin/main.c
index 00fd88b..516fb51 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -145,10 +145,10 @@ file_size:
for(;;){
if(input)
free(input);
- if(aplwc_valid_line(line))
- aplwc_free_line(line);
- if(aplwc_valid_value(value))
- aplwc_free_value(value);
+ if(aplwc_valid_line(&line))
+ aplwc_free_line(&line);
+ if(aplwc_valid_value(&value))
+ aplwc_free_value(&value);
input = NULL;
if(getline(&input, &input_size, stdin) < 0){
@@ -157,8 +157,8 @@ file_size:
break;
}else{
line_number++;
- line = aplwc_read(aplwc, input);
- if(!aplwc_valid_line(line)){
+ aplwc_read(aplwc, input, &line);
+ if(!aplwc_valid_line(&line)){
line_error:
fprintf(stderr, "error on line %d: %s: %s\n", line_number, aplwc_errstr(aplwc), input);
if(input_file){
@@ -167,20 +167,20 @@ line_error:
}
continue;
}
- value = aplwc_eval(line);
- if(!aplwc_valid_value(value))
+ aplwc_eval(&line, &value);
+ if(!aplwc_valid_value(&value))
goto line_error;
- fprintf(stdout, "%s\n", aplwc_value_string(value));
+ fprintf(stdout, "%s\n", aplwc_value_string(&value));
}
}
exit:
if(input)
free(input);
- if(aplwc_valid_line(line))
- aplwc_free_line(line);
- if(aplwc_valid_value(value))
- aplwc_free_value(value);
+ if(aplwc_valid_line(&line))
+ aplwc_free_line(&line);
+ if(aplwc_valid_value(&value))
+ aplwc_free_value(&value);
aplwc_destroy(aplwc);
return exit_code;