- /* Check the status again. */
- cr_status = cairo_status(cr);
- if (cr_status != CAIRO_STATUS_SUCCESS) {
- fprintf(stderr, "cairo error: %s\n",
- cairo_status_to_string(cr_status));
- exit_code = 1;
- goto cleanup;
+
+ /* Check the status again just for good measure? */
+ crs = cairo_status(cr);
+ if (crs != CAIRO_STATUS_SUCCESS) {
+ fprintf(stderr,
+ "cairo error: %s\n",
+ cairo_status_to_string(crs));
+ cairo_destroy(cr);
+ return NULL;
+ }
+
+ return cr;
+}
+
+int main(int argc, char** argv) {
+ char* svgpath;
+ char* pngpath;
+ int pngwidth = 1024, pngheight = 1024;
+
+ diagram_t* diagram;
+ cairo_t *cr = 0;
+
+ GdkPixbuf* pb;
+
+ /* Parse arguments, and maybe print usage */
+ if (argc < 3) {
+ printf("Usage: %s INPUT OUTPUT\n", argv[0]);
+ printf("Convert an SVG file (INPUT) to a PNG file (OUTPUT)\n");
+ return 2;
+ }
+
+ svgpath = argv[1];
+ pngpath = argv[2];
+
+ diagram = svgtiny_diagram_from_path(svgpath, pngwidth, pngheight);
+ if (!diagram) {
+ return 1;