#include #include #include int main(int argc, char *argv[]) { uint8_t data[APLWC_MIN_MEM+100]; char *input; struct aplwc *aplwc; struct aplwc_line *line; enum aplwc_rc ret; FILE *f; long input_size; if(argc != 2) return 1; f = fopen(argv[1], "r"); if(f == NULL) return 1; if(fseek(f, 0, SEEK_END)) return 1; input_size = ftell(f); if(input_size < 0) return 1; rewind(f); input = malloc(input_size+1); if(input == NULL) return 1; if(fread(input, 1, input_size, f) < (size_t)input_size) return 1; input[input_size] = 0; ret = aplwc_new(&aplwc, data, sizeof(data)); if(ret) return 1; line = aplwc_read(aplwc, input); if((line == NULL) && (aplwc_last_error(aplwc) != APLWC_OUT_OF_MEMORY)) return 1; aplwc_free_line(line); aplwc_destroy(aplwc); free(input); return 0; }