From 1caa34103925c53b180cd614f5c6b425b5a3f271 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 15 Jul 2009 13:26:34 +0100 Subject: Fix build under distcheck Need to play a little dance to get the sources included and paths correct whilst building source files with objdir != srcdir under distcheck. --- util/cairo-script/csi-bind.c | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 util/cairo-script/csi-bind.c (limited to 'util/cairo-script') diff --git a/util/cairo-script/csi-bind.c b/util/cairo-script/csi-bind.c new file mode 100644 index 000000000..91b58fb95 --- /dev/null +++ b/util/cairo-script/csi-bind.c @@ -0,0 +1,76 @@ +#include +#include + +#include +#include + +static cairo_status_t +write_func (void *closure, + const unsigned char *data, + unsigned int length) +{ + if (fwrite (data, length, 1, closure) != 1) + return CAIRO_STATUS_WRITE_ERROR; + + return CAIRO_STATUS_SUCCESS; +} + +int +main (int argc, char **argv) +{ + FILE *in = stdin, *out = stdout; + cairo_status_t status; + int i; + + if (argc >= 3) { + if (strcmp (argv[argc-1], "-")) { + out = fopen (argv[argc-1], "w"); + if (out == NULL) { + fprintf (stderr, "Failed to open output '%s'\n", argv[argc-1]); + return 1; + } + } + } + + if (argc > 2) { + for (i = 1; i < argc - 1; i++) { + in = fopen (argv[i], "r"); + if (in == NULL) { + fprintf (stderr, "Failed to open input '%s'\n", argv[i]); + return 1; + } + + status = cairo_script_interpreter_translate_stream (in, write_func, out); + fclose (in); + + if (status) + break; + } + } else { + if (argc > 1) { + if (strcmp (argv[1], "-")) { + in = fopen (argv[1], "r"); + if (in == NULL) { + fprintf (stderr, "Failed to open input '%s'\n", argv[1]); + return 1; + } + } + } + + status = cairo_script_interpreter_translate_stream (in, write_func, out); + + if (in != stdin) + fclose (in); + } + + if (out != stdout) + fclose (out); + + if (status) { + fprintf (stderr, "Translation failed: %s\n", + cairo_status_to_string (status)); + return status; + } + + return status; +} -- cgit v1.2.1