summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glsl/apps/purify.c21
-rw-r--r--src/glsl/apps/tokenise.c28
-rw-r--r--src/glsl/apps/version.c29
3 files changed, 60 insertions, 18 deletions
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,