glsl/apps: Always write out error condition.

This commit is contained in:
Michal Krol 2009-09-16 22:04:22 +02:00
parent a7382628f2
commit cc629940d4
1 changed files with 24 additions and 7 deletions

View File

@ -64,14 +64,26 @@ main(int argc,
size = ftell(in);
fseek(in, 0, SEEK_SET);
out = fopen(argv[2], "wb");
if (!out) {
fclose(in);
return 1;
}
inbuf = malloc(size + 1);
if (!inbuf) {
fprintf(out, "$OOMERROR\n");
fclose(out);
fclose(in);
return 1;
}
if (fread(inbuf, 1, size, in) != size) {
fprintf(out, "$READERROR\n");
free(inbuf);
fclose(out);
fclose(in);
return 1;
}
@ -82,36 +94,41 @@ main(int argc,
memset(&options, 0, sizeof(options));
if (sl_pp_purify(inbuf, &options, &outbuf)) {
fprintf(out, "$PURIFYERROR\n");
free(inbuf);
fclose(out);
return 1;
}
free(inbuf);
if (sl_pp_context_init(&context)) {
fprintf(out, "$CONTEXERROR\n");
free(outbuf);
fclose(out);
return 1;
}
if (sl_pp_tokenise(&context, outbuf, &tokens)) {
fprintf(out, "$ERROR: `%s'\n", context.error_msg);
sl_pp_context_destroy(&context);
free(outbuf);
fclose(out);
return 1;
}
free(outbuf);
if (sl_pp_version(&context, tokens, &version, &tokens_eaten)) {
sl_pp_context_destroy(&context);
free(tokens);
return -1;
}
fprintf(out, "$ERROR: `%s'\n", context.error_msg);
out = fopen(argv[2], "wb");
if (!out) {
sl_pp_context_destroy(&context);
free(tokens);
return 1;
fclose(out);
return -1;
}
if (sl_pp_process(&context, &tokens[tokens_eaten], &outtokens)) {