From: Michal Krol Date: Thu, 17 Sep 2009 08:45:16 +0000 (+0200) Subject: glsl/apps: Always write out error condition. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=69bdd47dba1f7331a632316e4f9cc9942fb93ca4;p=mesa.git glsl/apps: Always write out error condition. --- diff --git a/src/glsl/apps/purify.c b/src/glsl/apps/purify.c index 7dff8aea456..d4c53704e54 100644 --- a/src/glsl/apps/purify.c +++ b/src/glsl/apps/purify.c @@ -54,14 +54,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; } @@ -72,18 +84,15 @@ 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); - out = fopen(argv[2], "wb"); - if (!out) { - free(outbuf); - return 1; - } - fwrite(outbuf, 1, strlen(outbuf), out); free(outbuf); diff --git a/src/glsl/apps/tokenise.c b/src/glsl/apps/tokenise.c index 64b0a2f05eb..1746e20c13b 100644 --- a/src/glsl/apps/tokenise.c +++ b/src/glsl/apps/tokenise.c @@ -60,14 +60,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; } @@ -78,32 +90,34 @@ 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); - out = fopen(argv[2], "wb"); - if (!out) { - sl_pp_context_destroy(&context); - free(tokens); - return 1; - } - for (i = 0; tokens[i].token != SL_PP_EOF; i++) { switch (tokens[i].token) { case SL_PP_WHITESPACE: diff --git a/src/glsl/apps/version.c b/src/glsl/apps/version.c index 9e579043b28..50c564b470b 100644 --- a/src/glsl/apps/version.c +++ b/src/glsl/apps/version.c @@ -60,14 +60,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; } @@ -78,39 +90,46 @@ 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)) { + fprintf(out, "$ERROR: `%s'\n", context.error_msg); + sl_pp_context_destroy(&context); free(tokens); + fclose(out); return -1; } sl_pp_context_destroy(&context); free(tokens); - out = fopen(argv[2], "wb"); - if (!out) { - return 1; - } - fprintf(out, "%u\n%u\n", version,