Tizen 2.0 Release
[framework/graphics/cairo.git] / util / cairo-script / csi-exec.c
1 #include <cairo.h>
2 #include <cairo-script-interpreter.h>
3
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 static cairo_surface_t *
8 _surface_create (void *closure,
9                  cairo_content_t content,
10                  double width, double height,
11                  long uid)
12 {
13     return cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
14 }
15
16 int
17 main (int argc, char **argv)
18 {
19     const cairo_script_interpreter_hooks_t hooks = {
20         .surface_create = _surface_create
21     };
22     cairo_script_interpreter_t *csi;
23     int i;
24
25     for (i = 1; i < argc; i++) {
26         int status, line;
27
28         csi = cairo_script_interpreter_create ();
29         cairo_script_interpreter_install_hooks (csi, &hooks);
30         cairo_script_interpreter_run (csi, argv[i]);
31         line = cairo_script_interpreter_get_line_number (csi);
32         status = cairo_script_interpreter_destroy (csi);
33         if (status) {
34             fprintf (stderr, "Error during replay of '%s', line %d: %d\n",
35                      argv[i], line, status);
36             return 1;
37         }
38     }
39
40     return 0;
41 }