glsl/apps: Assert that ftell does not return an error.
[mesa.git] / src / glsl / apps / tokenise.c
index 9dd9631a4ed6ea955237f03e4bbd8cd4220e555e..b4c6d609300f4a2d09bdc395bb48f3d8f3a59b02 100644 (file)
@@ -40,15 +40,13 @@ main(int argc,
    long size;
    char *inbuf;
    struct sl_pp_purify_options options;
-   char *outbuf;
-   char errmsg[100] = "";
-   unsigned int errline = 0;
    struct sl_pp_context *context;
    struct sl_pp_token_info *tokens;
    FILE *out;
    unsigned int i;
 
    if (argc != 3) {
+      printf("Usage: tokenize infile outfile\n");
       return 1;
    }
 
@@ -59,6 +57,7 @@ main(int argc,
 
    fseek(in, 0, SEEK_END);
    size = ftell(in);
+   assert(size != -1);
    fseek(in, 0, SEEK_SET);
 
    out = fopen(argv[2], "wb");
@@ -90,35 +89,25 @@ main(int argc,
 
    memset(&options, 0, sizeof(options));
 
-   if (sl_pp_purify(inbuf, &options, &outbuf, errmsg, sizeof(errmsg), &errline)) {
-      fprintf(out, "$PURIFYERROR %s\n", errmsg);
-
-      free(inbuf);
-      fclose(out);
-      return 1;
-   }
-
-   free(inbuf);
-
-   context = sl_pp_context_create();
+   context = sl_pp_context_create(inbuf, &options);
    if (!context) {
       fprintf(out, "$CONTEXERROR\n");
 
-      free(outbuf);
+      free(inbuf);
       fclose(out);
       return 1;
    }
 
-   if (sl_pp_tokenise(context, outbuf, &tokens)) {
+   if (sl_pp_tokenise(context, &tokens)) {
       fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context));
 
       sl_pp_context_destroy(context);
-      free(outbuf);
+      free(inbuf);
       fclose(out);
       return 1;
    }
 
-   free(outbuf);
+   free(inbuf);
 
    for (i = 0; tokens[i].token != SL_PP_EOF; i++) {
       switch (tokens[i].token) {