diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/desktop.c sodipodi-0.33/src/desktop.c
--- sodipodi-0.33-orig/src/desktop.c	2003-11-22 23:22:53.000000000 +0100
+++ sodipodi-0.33/src/desktop.c	2004-01-08 11:35:17.000000000 +0100
@@ -47,6 +47,8 @@
 #include "sp-namedview.h"
 #include "sp-item.h"
 #include "sp-root.h"
+// CINELERRA
+#include "cinelerra.h"
 
 /* fixme: Lauris */
 #include "file.h"
@@ -760,6 +762,16 @@
 	dtw->vscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (dtw->vadj));
 	gtk_table_attach (GTK_TABLE (tbl), dtw->vscrollbar, 2, 3, 1, 2, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 
+   /* CINELERRA export button */
+	if(Cinelerra.exportfile != NULL) {
+	   dtw->exbtn = gtk_button_new_with_label("E");
+		gtk_table_attach(GTK_TABLE(tbl), dtw->exbtn, 2, 3, 2, 3, GTK_FILL,
+											GTK_FILL, 0, 0);
+		g_signal_connect (G_OBJECT (dtw->exbtn), "button_release_event",
+  	     		            G_CALLBACK (cin_export), dtw);
+	}
+
+
 	/* Canvas */
 	w = gtk_frame_new (NULL);
 	gtk_frame_set_shadow_type (GTK_FRAME (w), GTK_SHADOW_IN);
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/desktop.h sodipodi-0.33/src/desktop.h
--- sodipodi-0.33-orig/src/desktop.h	2003-11-22 23:22:53.000000000 +0100
+++ sodipodi-0.33/src/desktop.h	2003-12-26 22:41:37.000000000 +0100
@@ -137,6 +137,9 @@
 
         GtkWidget *mbtn;
 
+	/* CINELERRA export button */
+	GtkWidget *exbtn;
+
 	GtkWidget *hscrollbar, *vscrollbar;
 
 	/* Rulers */
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/document.c sodipodi-0.33/src/document.c
--- sodipodi-0.33-orig/src/document.c	2003-11-17 22:52:57.000000000 +0100
+++ sodipodi-0.33/src/document.c	2004-01-08 13:58:26.000000000 +0100
@@ -32,6 +32,8 @@
 #include "document-private.h"
 #include "desktop.h"
 
+#include "cinelerra.h"
+
 #define SP_NAMESPACE_SVG "http://www.w3.org/2000/svg"
 #define SP_NAMESPACE_SODIPODI "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 #define SP_NAMESPACE_XLINK "http://www.w3.org/1999/xlink"
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/file.c sodipodi-0.33/src/file.c
--- sodipodi-0.33-orig/src/file.c	2003-11-30 14:02:31.000000000 +0100
+++ sodipodi-0.33/src/file.c	2004-01-10 13:04:07.000000000 +0100
@@ -64,6 +64,14 @@
 #include "modules/win32.h"
 #endif
 
+#include "cinelerra.h"
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+              
+
 gchar *open_path = NULL;
 gchar *save_path = NULL;
 gchar *import_path = NULL;
@@ -656,3 +664,110 @@
 	nr_arena_item_unref (ebp.root);
 	nr_object_unref ((NRObject *) arena);
 }
+
+void
+sp_export_raw_file (SPDocument *doc, int fh_raw,
+		    double x0, double y0, double x1, double y1,
+		    unsigned int width, unsigned int height,
+		    unsigned long bgcolor)
+{
+	NRMatrixF affine;
+	gdouble t;
+	NRArena *arena;
+	struct SPEBP ebp;
+	unsigned int dkey;
+
+	g_return_if_fail (doc != NULL);
+	g_return_if_fail (SP_IS_DOCUMENT (doc));
+	g_return_if_fail (fh_raw != -1);
+	g_return_if_fail (width >= 16);
+	g_return_if_fail (height >= 16);
+
+	sp_document_ensure_up_to_date (doc);
+
+	/* Go to document coordinates */
+	t = y0;
+	y0 = sp_document_height (doc) - y1;
+	y1 = sp_document_height (doc) - t;
+
+	/*
+	 * 1) a[0] * x0 + a[2] * y1 + a[4] = 0.0
+	 * 2) a[1] * x0 + a[3] * y1 + a[5] = 0.0
+	 * 3) a[0] * x1 + a[2] * y1 + a[4] = width
+	 * 4) a[1] * x0 + a[3] * y0 + a[5] = height
+	 * 5) a[1] = 0.0;
+	 * 6) a[2] = 0.0;
+	 *
+	 * (1,3) a[0] * x1 - a[0] * x0 = width
+	 * a[0] = width / (x1 - x0)
+	 * (2,4) a[3] * y0 - a[3] * y1 = height
+	 * a[3] = height / (y0 - y1)
+	 * (1) a[4] = -a[0] * x0
+	 * (2) a[5] = -a[3] * y1
+	 */
+
+	affine.c[0] = width / ((x1 - x0) * 1.25);
+	affine.c[1] = 0.0;
+	affine.c[2] = 0.0;
+	affine.c[3] = height / ((y1 - y0) * 1.25);
+	affine.c[4] = -affine.c[0] * x0 * 1.25;
+	affine.c[5] = -affine.c[3] * y0 * 1.25;
+
+	SP_PRINT_MATRIX ("SVG2PNG", &affine);
+
+	ebp.width = width;
+	ebp.height = height;
+	ebp.r = NR_RGBA32_R (bgcolor);
+	ebp.g = NR_RGBA32_G (bgcolor);
+	ebp.b = NR_RGBA32_B (bgcolor);
+	ebp.a = NR_RGBA32_A (bgcolor);
+
+	/* Create new arena */
+	arena = (NRArena *) nr_object_new (NR_TYPE_ARENA);
+	dkey = sp_item_display_key_new (1);
+	/* Create ArenaItem and set transform */
+	ebp.root = sp_item_invoke_show (SP_ITEM (sp_document_root (doc)), arena, dkey, SP_ITEM_SHOW_PRINT);
+	nr_arena_item_set_transform (ebp.root, &affine);
+	{
+		int len_raw;
+		void *buffer;
+		struct raw_struct *raw_data;
+ 		struct timeval current_time;
+ 	
+		const unsigned char ** rows = nr_new (const unsigned char *, height);
+		ebp.sheight = height;
+		len_raw =  4 * height * width + sizeof(struct raw_struct);
+		ftruncate(fh_raw, len_raw);
+
+		buffer = mmap(NULL, len_raw, PROT_WRITE | PROT_READ, MAP_SHARED, fh_raw, 0);
+		raw_data = (struct raw_struct *) buffer;
+		strcpy(raw_data->rawc, "RAWC");
+		raw_data->struct_version = 1;
+		raw_data->struct_size = sizeof(struct raw_struct);
+		raw_data->width = width;
+		raw_data->height = height;
+		raw_data->pitch = width; // width == pitch currently
+		raw_data->color_model = BC_RGBA8888;
+		
+// we use a trick of writing directly to shared memory
+//		ebp.px = nr_new (unsigned char, 4 * height * width);
+		ebp.px = (buffer + sizeof(struct raw_struct));
+		sp_export_get_rows(rows, 0, height, &ebp);
+		
+		// update time_of_creation after export
+		gettimeofday(&current_time, 0);	 	
+		raw_data->time_of_creation = (int64_t)current_time.tv_sec * 1000 + (int64_t)current_time.tv_usec / 1000;
+
+
+		munmap (buffer, len_raw);
+		nr_free(rows);
+//		nr_free (ebp.px);
+
+	}
+
+
+	/* Free Arena and ArenaItem */
+	sp_item_invoke_hide (SP_ITEM (sp_document_root (doc)), dkey);
+	nr_arena_item_unref (ebp.root);
+	nr_object_unref ((NRObject *) arena);
+}
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/file.h sodipodi-0.33/src/file.h
--- sodipodi-0.33-orig/src/file.h	2003-06-16 01:03:02.000000000 +0200
+++ sodipodi-0.33/src/file.h	2004-01-06 15:44:12.000000000 +0100
@@ -45,5 +45,9 @@
 			 double x0, double y0, double x1, double y1,
 			 unsigned int width, unsigned int height,
 			 unsigned long bgcolor);
+void sp_export_raw_file (SPDocument *doc, int fh_raw,
+		    double x0, double y0, double x1, double y1,
+		    unsigned int width, unsigned int height,
+		    unsigned long bgcolor);
 
 #endif
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/main.c sodipodi-0.33/src/main.c
--- sodipodi-0.33-orig/src/main.c	2003-11-26 23:41:53.000000000 +0100
+++ sodipodi-0.33/src/main.c	2004-01-06 12:08:26.000000000 +0100
@@ -78,6 +78,8 @@
 
 #include "helper/sp-intl.h"
 
+#include "cinelerra.h" // CINELERRA
+
 #ifndef HAVE_BIND_TEXTDOMAIN_CODESET
 #define bind_textdomain_codeset(p,c)
 #endif
@@ -101,7 +103,8 @@
 	SP_ARG_EXPORT_SVG,
 	SP_ARG_SLIDESHOW,
 	SP_ARG_BITMAP_ICONS,
-	SP_ARG_LAST
+	SP_ARG_LAST,
+	CIN_ARG_EXPORT_FILE //CINELERRA export file
 };
 #endif
 
@@ -160,6 +163,9 @@
 	{"bitmap-icons", 'i', POPT_ARG_NONE, &sp_bitmap_icons, SP_ARG_BITMAP_ICONS,
 	 N_("Prefer bitmap (xpm) icons to SVG ones"),
 	 NULL},
+/* CINELERRA cmd line addition */
+	{"cinelerra-export-file", 0, POPT_ARG_STRING, &Cinelerra.exportfile,
+	 CIN_ARG_EXPORT_FILE, N_("Cinelerra export file"), NULL}, 
 	POPT_AUTOHELP POPT_TABLEEND
 };
 #else
@@ -385,7 +391,10 @@
 			}
 			if (sp_export_png) {
 				sp_do_export_png (doc);
-			}
+			} 
+			if (Cinelerra.exportfile) {
+				cin_do_export_raw (doc);
+			} else
 			if (sp_export_svg) {
 				SPReprDoc *rdoc;
 				SPRepr *repr;
@@ -515,6 +524,27 @@
 				fl = g_slist_append (fl, g_strdup (fn));
 			}
 			break;
+
+/* CINELERRA addition for args */
+		case CIN_ARG_EXPORT_FILE:
+			fn = poptGetOptArg (ctx);
+			if(fn != NULL && strlen(fn) > 0) {
+				Cinelerra.exportfile = fn;
+			} else {
+				g_error("--cinelerra-export-file found, but no filename!");
+			}
+			break;
+		case SP_ARG_EXPORT_WIDTH:
+			fn = poptGetOptArg(ctx);
+			if(fn != NULL)
+				Cinelerra.width = fn;
+			break;
+		case SP_ARG_EXPORT_HEIGHT:
+			fn = poptGetOptArg(ctx);
+			if(fn != NULL)
+				Cinelerra.height = fn;
+			break;
+/* END CINELERRA addition for args */
 		default:
 			break;
 		}
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/shortcuts.c sodipodi-0.33/src/shortcuts.c
--- sodipodi-0.33-orig/src/shortcuts.c	2003-11-16 01:07:56.000000000 +0100
+++ sodipodi-0.33/src/shortcuts.c	2003-12-28 09:56:34.000000000 +0100
@@ -100,6 +100,10 @@
 	sp_shortcut_set_verb (SP_SHORTCUT_CONTROL_MASK | GDK_K, SP_VERB_SELECTION_COMBINE, TRUE);
 	sp_shortcut_set_verb (SP_SHORTCUT_SHIFT_MASK | SP_SHORTCUT_CONTROL_MASK | GDK_k, SP_VERB_SELECTION_BREAK_APART, TRUE);
 	sp_shortcut_set_verb (SP_SHORTCUT_SHIFT_MASK | SP_SHORTCUT_CONTROL_MASK | GDK_K, SP_VERB_SELECTION_BREAK_APART, TRUE);
+       /* CINELERRA */
+        sp_shortcut_set_verb (SP_SHORTCUT_SHIFT_MASK | SP_SHORTCUT_CONTROL_MASK | GDK_e, SP_VERB_CINELERRA_EXPORT, TRUE);
+        sp_shortcut_set_verb (SP_SHORTCUT_SHIFT_MASK | SP_SHORTCUT_CONTROL_MASK | GDK_E, SP_VERB_CINELERRA_EXPORT, TRUE);
+
 }
 
 static GHashTable *scdict = NULL;
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/verbs.c sodipodi-0.33/src/verbs.c
--- sodipodi-0.33-orig/src/verbs.c	2003-11-16 22:26:01.000000000 +0100
+++ sodipodi-0.33/src/verbs.c	2004-01-06 23:49:46.000000000 +0100
@@ -51,6 +51,9 @@
 
 #include "verbs.h"
 
+/* CINELERRA */
+#include "cinelerra.h"
+
 static void sp_verbs_init (void);
 
 static SPAction *verb_actions = NULL;
@@ -362,12 +365,25 @@
 	}
 }
 
+static void
+sp_verb_action_cinelerra_perform (SPAction *action, void *config, void *data)
+{
+	switch((int) data) {
+		case SP_VERB_CINELERRA_EXPORT: 
+			cin_export(NULL, NULL, NULL);
+			break; 
+		default:
+			break;
+	}
+}
+
 static SPActionEventVector action_file_vector = {{NULL}, sp_verb_action_file_perform, NULL, NULL, sp_verb_action_set_shortcut};
 static SPActionEventVector action_edit_vector = {{NULL}, sp_verb_action_edit_perform, NULL, NULL, sp_verb_action_set_shortcut};
 static SPActionEventVector action_object_vector = {{NULL}, sp_verb_action_object_perform, NULL, NULL, sp_verb_action_set_shortcut};
 static SPActionEventVector action_ctx_vector = {{NULL}, sp_verb_action_ctx_perform, NULL, NULL, sp_verb_action_set_shortcut};
 static SPActionEventVector action_zoom_vector = {{NULL}, sp_verb_action_zoom_perform, NULL, NULL, sp_verb_action_set_shortcut};
 static SPActionEventVector action_dialog_vector = {{NULL}, sp_verb_action_dialog_perform, NULL, NULL, sp_verb_action_set_shortcut};
+static SPActionEventVector action_cinelerra_vector = {{NULL}, sp_verb_action_cinelerra_perform, NULL, NULL, sp_verb_action_set_shortcut};
 
 /* This one is from selection-chemistry */
 static SPActionEventVector action_selection_vector = {{NULL}, sp_selection_action_perform, NULL, NULL, sp_verb_action_set_shortcut};
@@ -379,6 +395,7 @@
 #define SP_VERB_IS_CONTEXT(v) ((v >= SP_VERB_CONTEXT_SELECT) && (v <= SP_VERB_CONTEXT_DROPPER))
 #define SP_VERB_IS_ZOOM(v) ((v >= SP_VERB_ZOOM_IN) && (v <= SP_VERB_ZOOM_SELECTION))
 #define SP_VERB_IS_DIALOG(v) ((v >= SP_VERB_DIALOG_DISPLAY) && (v <= SP_VERB_DIALOG_ITEM))
+#define SP_VERB_IS_CINELERRA(v) (v == SP_VERB_CINELERRA_EXPORT)
 
 typedef struct {
 	unsigned int code;
@@ -466,6 +483,8 @@
 	{SP_VERB_DIALOG_TEXT, "Dialogtext", N_("Text and Font"), N_("Text editing and font settings"), "object_font"},
 	{SP_VERB_DIALOG_XML_EDITOR, "DialogXMLEditor", N_("XML Editor"), N_("XML Editor"), NULL},
 	{SP_VERB_DIALOG_ITEM, "DialogItem", N_("Item Properties"), N_("Item properties"), NULL},
+	/* CINELERRA */
+	{SP_VERB_CINELERRA_EXPORT, "CinelerraExport", N_("Cinelerra Export"), N_("Cinelerra Export"), NULL},
 	/* Footer */
 	{SP_VERB_LAST, NULL, NULL, NULL, NULL}
 };
diff -ur -x 'ac*' -x 'build*' -x 'config*' -x 'Make*' -x 'depcomp*' -x 'lt*' -x 'miss*' sodipodi-0.33-orig/src/verbs.h sodipodi-0.33/src/verbs.h
--- sodipodi-0.33-orig/src/verbs.h	2003-11-16 01:07:56.000000000 +0100
+++ sodipodi-0.33/src/verbs.h	2003-12-26 22:41:37.000000000 +0100
@@ -92,6 +92,8 @@
 	SP_VERB_DIALOG_TEXT,
 	SP_VERB_DIALOG_XML_EDITOR,
 	SP_VERB_DIALOG_ITEM,
+	/* CINELERRA */
+	SP_VERB_CINELERRA_EXPORT,
 	/* Footer */
 	SP_VERB_LAST
 };
--- sodipodi-0.33-orig/src/cinelerra.c	1970-01-01 01:00:00.000000000 +0100
+++ sodipodi-0.33/src/cinelerra.c	2004-01-10 12:36:44.000000000 +0100
@@ -0,0 +1,139 @@
+/* All of the code added to sodipodi for itnegration with cinelerra --
+ * minus the interface stuff etc. that has to go into sodipodi's main
+ * code. All of it is tagged with "CINELERRA". */
+
+#include <unistd.h>
+#include <sys/file.h>    
+#include <errno.h>
+#include "sodipodi.h"
+#include "desktop.h"
+#include "document.h"
+#include "sp-object.h"
+#include "file.h"
+#include "forward.h"
+#include "cinelerra.h"
+#include "helper/sp-intl.h"
+      
+#include <sys/types.h>
+#include <sys/stat.h>
+                     
+
+      
+static guchar *sp_export_dpi = NULL;
+static guchar *sp_export_area = NULL;
+static guchar *sp_export_background = NULL;
+
+
+
+void cin_export(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+	SPDocument *doc;
+
+	doc = SP_ACTIVE_DOCUMENT;
+
+	cin_do_export_raw(doc);
+
+	sp_file_save(NULL, NULL);
+
+}
+
+void cin_do_export_raw(SPDocument *doc)
+{
+
+		/* This entire section is the sp_do_export_png function found in
+		 * main.c, which seems to be not for use globally. I made a few
+		 * minor modifications to get rid of gcc warnings and extra
+		 * pointers. */
+
+   ArtDRect area;
+   gint width, height;
+   guint32 bgcolor;
+
+
+	if(doc == NULL) {
+		printf("No Document to export\n");
+		return;
+	}
+
+
+   /* Check for and set up exporting path */
+   /* Export the whole document */
+   area.x0 = 0.0;
+   area.y0 = 0.0;
+   area.x1 = sp_document_width (doc);
+   area.y1 = sp_document_height (doc);
+
+
+   if (Cinelerra.width) {
+      width = atoi (Cinelerra.width);
+      if ((width < 16) || (width > 65536)) {
+         g_warning ("Export width %d out of range (16 - 65536)", width);
+         return;
+      }
+   }
+
+   if (Cinelerra.height) {
+      height = atoi (Cinelerra.height);
+      if ((height < 16) || (height > 65536)) {
+         g_warning ("Export height %d out of range (16 - 65536)",
+							width);
+         return;
+      }
+   }
+
+   if (!Cinelerra.width) {
+      width = (gint) ((area.x1 - area.x0) / (72.0 / 25.4) + 0.5);
+   }
+
+   if (!Cinelerra.height) {
+      height = (gint) ((area.y1 - area.y0) / (72.0 / 25.4) + 0.5);
+   }
+
+   bgcolor = 0x00000000;
+   if (sp_export_background) {
+      bgcolor = sp_svg_read_color (sp_export_background, 0xffffff00);
+      bgcolor |= 0xff;
+   }
+//   g_print ("Background is %x\n", bgcolor);
+
+   g_print ("Exporting %g %g %g %g to %d x %d rectangle\n", area.x0,
+				area.y0, area.x1, area.y1, width, height);
+
+   if ((width >= 16) || (height >= 16) || (width < 65536) || (height < 65536)) {
+   // We lock the file so there is just one reader/writer at a time
+      guchar *filename_fifo;
+      int fh_raw;
+      int fh_fifo;
+      struct fifo_struct fifo_buf;
+      	
+//	printf("Sodipodi locking %s! \n", filename_lock);
+      fh_raw = open (Cinelerra.exportfile, O_CREAT|O_RDWR, S_IRUSR | S_IWUSR);
+      int res = lockf(fh_raw, F_LOCK, 0);    // Blocking call - will wait for other sodipodi or cinelerra
+//	printf("Sodipodi: filehandle: %i, res: %i, errno: %i\n", fh_raw, res, errno);
+                                                                                                                                         
+
+
+      sp_export_raw_file (doc, fh_raw,
+					area.x0, area.y0, area.x1,
+					area.y1, width, height, bgcolor);
+      lockf(fh_raw, F_ULOCK, 0);
+      close(fh_raw);		
+  	printf("exporting finished\n");
+      filename_fifo = g_strconcat(Cinelerra.exportfile, ".fifo");
+      fh_fifo = open(filename_fifo, O_RDWR);
+//	printf("Sodipodi fifo %s! \n", filename_fifo);
+  //     printf("Sodipodi: filehandle: %i, res: %i, errno: %i\n", fh_fifo, res, errno);
+
+      fifo_buf.pid = getpid();
+      fifo_buf.action = 1;    // update from client
+      write(fh_fifo, &fifo_buf, sizeof(fifo_buf));
+      close(fh_fifo);  	        
+      g_free(filename_fifo);
+//	printf("Sodipodi unlocking!\n");
+   } else {
+      g_warning ("Calculated bitmap dimensions %d %d out of range (16 - 65535)",
+						 width, height);
+   }
+
+}
+
--- sodipodi-0.33-orig/src/cinelerra.h	1970-01-01 01:00:00.000000000 +0100
+++ sodipodi-0.33/src/cinelerra.h	2004-01-10 13:03:55.000000000 +0100
@@ -0,0 +1,31 @@
+struct _Cinelerra {
+	const guchar *exportfile;
+	const guchar *width;
+	const guchar *height;
+} Cinelerra;
+
+struct fifo_struct {
+      	int pid;
+	int action;  // 1 = update from client, 2 = client closes
+      };
+
+
+struct raw_struct {
+	char rawc[5];        // Null terminated "RAWC" string
+	int32_t struct_version;  // currently 1 (bumped at each destructive change) 
+	int32_t struct_size;     // size of this struct in bytes
+	int32_t width;               // logical width of image
+	int32_t height;
+	int32_t pitch;           // physical width of image in memory
+	int32_t color_model;      // as BC_ constant, currently only BC_RGBA8888 is supported
+	int64_t time_of_creation; // in milliseconds - calculated as (tv_sec * 1000 + tv_usec / 1000);
+				// we can't trust date on the file, due to different reasons
+};	
+
+#define BC_RGB888  	9 
+#define BC_RGBA8888	10
+
+
+void cin_export(GtkWidget *widget, GdkEvent *event, gpointer data);
+void cin_do_export_raw(SPDocument *doc);
+void cin_do_export_png(SPDocument *doc);
--- sodipodi-0.33-orig/src/Makefile.am	2003-11-23 15:25:21.000000000 +0100
+++ sodipodi-0.33/src/Makefile.am	2003-12-26 22:41:37.000000000 +0100
@@ -89,6 +89,7 @@
 	sp-namedview.c sp-namedview.h \
 	sp-guide.c sp-guide.h \
 	\
+	cinelerra.c cinelerra.h \
 	view.c view.h \
 	svg-view.c svg-view.h \
 	selection.c selection.h \
