From f751ea1a1a60ecf0856cc38704a32bf53c898e44 Mon Sep 17 00:00:00 2001
From: kramm <kramm>
Date: Sun, 6 Apr 2008 16:52:14 +0000
Subject: [PATCH] drop parameters into output device as well as input device

---
 src/pdf2swf.c |   30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/pdf2swf.c b/src/pdf2swf.c
index 975aa6c..39680cf 100644
--- a/src/pdf2swf.c
+++ b/src/pdf2swf.c
@@ -39,7 +39,8 @@
 
 #define SWFDIR concatPaths(getInstallationPath(), "swfs")
 
-gfxsource_t*driver;
+static gfxsource_t*driver = 0;
+static gfxdevice_t*out = 0;
 
 static char * outputname = 0;
 static int loglevel = 3;
@@ -188,9 +189,11 @@ int args_callback_option(char*name,char*val) {
 	    *c = 0;
 	    c++;
 	    driver->set_parameter(driver, s,c);
-	}
-	else
+	    out->setparameter(out, s,c);
+	} else {
 	    driver->set_parameter(driver, s,"1");
+	    out->setparameter(out, s,"1");
+	}
 	return 1;
     }
     else if (!strcmp(name, "S"))
@@ -528,8 +531,18 @@ int main(int argn, char *argv[])
 #endif
     driver = gfxsource_pdf_create();
 
+    gfxdevice_t swf,wrap;
+    gfxdevice_swf_init(&swf);
+    
+    gfxdevice_removeclippings_init(&wrap, &swf);
+
+    out = &wrap;
     processargs(argn, argv);
     
+    if(!flatten) {
+	out = &swf;
+    }
+    
     if(!filename)
     {
 	fprintf(stderr, "Please specify an input file\n");
@@ -583,17 +596,6 @@ int main(int argn, char *argv[])
         exit(1);
     }
 
-    gfxdevice_t swf,wrap;
-    gfxdevice_swf_init(&swf);
-    gfxdevice_t*out;
-    
-    if(flatten) {
-	gfxdevice_removeclippings_init(&wrap, &swf);
-	out = &wrap;
-    } else {
-	out = &swf;
-    }
-
     struct mypage_t {
 	int x;
 	int y;
-- 
1.7.10.4