diff options
author | Michal Krol <[email protected]> | 2009-12-20 13:51:38 +0100 |
---|---|---|
committer | Michal Krol <[email protected]> | 2009-12-20 21:19:01 +0100 |
commit | 0874ce48a68c06d8bb7387e434af7471d6638e80 (patch) | |
tree | 494bddc1b40a9b673b69f934b4c48f41be9bfe27 /src/glsl/apps/compile.c | |
parent | d696cb279d80ccddebcb28ef6b6284bc6bb9430f (diff) |
glsl/apps: Print error line number in compile.
Diffstat (limited to 'src/glsl/apps/compile.c')
-rw-r--r-- | src/glsl/apps/compile.c | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/src/glsl/apps/compile.c b/src/glsl/apps/compile.c index b1165420fb8..4181281ee70 100644 --- a/src/glsl/apps/compile.c +++ b/src/glsl/apps/compile.c @@ -50,9 +50,7 @@ main(int argc, struct sl_pp_purify_options options; char errmsg[100] = ""; struct sl_pp_context *context; - struct sl_pp_token_info *tokens; unsigned int version; - unsigned int tokens_eaten; struct sl_pp_token_info *outtokens; FILE *out; unsigned int i, j; @@ -118,7 +116,7 @@ main(int argc, memset(&options, 0, sizeof(options)); - context = sl_pp_context_create(); + context = sl_pp_context_create(inbuf, &options); if (!context) { fprintf(out, "$CONTEXERROR\n"); @@ -128,24 +126,12 @@ main(int argc, return 0; } - if (sl_pp_tokenise(context, inbuf, &options, &tokens)) { - fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context)); - - printf("Error: %s.\n", sl_pp_context_error_message(context)); - sl_pp_context_destroy(context); - free(inbuf); - fclose(out); - return 0; - } - - free(inbuf); - - if (sl_pp_version(context, tokens, &version, &tokens_eaten)) { + if (sl_pp_version(context, &version)) { fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context)); printf("Error: %s\n", sl_pp_context_error_message(context)); sl_pp_context_destroy(context); - free(tokens); + free(inbuf); fclose(out); return 0; } @@ -156,22 +142,26 @@ main(int argc, printf("Error: %s\n", sl_pp_context_error_message(context)); sl_pp_context_destroy(context); - free(tokens); + free(inbuf); fclose(out); return 0; } - if (sl_pp_process(context, &tokens[tokens_eaten], &outtokens)) { - fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context)); + if (sl_pp_process(context, &outtokens)) { + unsigned int errline; - printf("Error: %s\n", sl_pp_context_error_message(context)); + sl_pp_context_error_position(context, NULL, &errline); + + fprintf(out, "$ERROR: (%u) `%s'\n", errline, sl_pp_context_error_message(context)); + + printf("Error: (%u) %s\n", errline, sl_pp_context_error_message(context)); sl_pp_context_destroy(context); - free(tokens); + free(inbuf); fclose(out); return 0; } - free(tokens); + free(inbuf); for (i = j = 0; outtokens[i].token != SL_PP_EOF; i++) { switch (outtokens[i].token) { |