2aa77aa
From 127777fe3298bcdfe45d74b36f77b8238ebb6937 Mon Sep 17 00:00:00 2001
2aa77aa
From: David Tardon <dtardon@redhat.com>
2aa77aa
Date: Tue, 27 May 2014 16:47:39 +0200
2aa77aa
Subject: [PATCH] switch to librevenge-based import libs
2aa77aa
2aa77aa
---
2aa77aa
 configure.ac                         | 19 ++---------------
2aa77aa
 src/extension/internal/wpg-input.cpp | 41 ++++++++++++------------------------
2aa77aa
 2 files changed, 15 insertions(+), 45 deletions(-)
2aa77aa
2aa77aa
diff --git a/configure.ac b/configure.ac
2aa77aa
index fcff879..4bce58c 100644
2aa77aa
--- a/configure.ac
2aa77aa
+++ b/configure.ac
2aa77aa
@@ -676,23 +676,8 @@ dnl ******************************
2aa77aa
 
2aa77aa
 with_libwpg=no
2aa77aa
 
2aa77aa
-PKG_CHECK_MODULES(LIBWPG01, libwpg-0.1 libwpg-stream-0.1, with_libwpg01=yes, with_libwpg01=no)
2aa77aa
-if test "x$with_libwpg01" = "xyes"; then
2aa77aa
-	AC_DEFINE(WITH_LIBWPG01,1,[Build in libwpg 0.1.x])
2aa77aa
-	with_libwpg=yes
2aa77aa
-	AC_SUBST(LIBWPG_LIBS, $LIBWPG01_LIBS)
2aa77aa
-	AC_SUBST(LIBWPG_CFLAGS, $LIBWPG01_CFLAGS)
2aa77aa
-fi
2aa77aa
-AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg01" = "xyes")
2aa77aa
-
2aa77aa
-PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9, with_libwpg02=yes, with_libwpg02=no)
2aa77aa
-if test "x$with_libwpg02" = "xyes"; then
2aa77aa
-	AC_DEFINE(WITH_LIBWPG02,1,[Build in libwpg 0.2.x])
2aa77aa
-	with_libwpg=yes
2aa77aa
-	AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS)
2aa77aa
-	AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS)
2aa77aa
-fi
2aa77aa
-AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes")
2aa77aa
+PKG_CHECK_MODULES(LIBWPG, libwpg-0.3 librevenge-0.0 librevenge-stream-0.0, with_libwpg=yes, with_libwpg=no)
2aa77aa
+AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg" = "xyes")
2aa77aa
 
2aa77aa
 if test "x$with_libwpg" = "xyes"; then
2aa77aa
 	AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg])
2aa77aa
diff --git a/src/extension/internal/wpg-input.cpp b/src/extension/internal/wpg-input.cpp
2aa77aa
index 5c5cb65..71c7b44 100644
2aa77aa
--- a/src/extension/internal/wpg-input.cpp
2aa77aa
+++ b/src/extension/internal/wpg-input.cpp
2aa77aa
@@ -48,17 +48,8 @@
2aa77aa
 #include "extension/input.h"
2aa77aa
 #include "document.h"
2aa77aa
 
2aa77aa
-// Take a guess and fallback to 0.1.x if no configure has run
2aa77aa
-#if !defined(WITH_LIBWPG01) && !defined(WITH_LIBWPG02)
2aa77aa
-#define WITH_LIBWPG01 1
2aa77aa
-#endif
2aa77aa
-
2aa77aa
 #include "libwpg/libwpg.h"
2aa77aa
-#if WITH_LIBWPG01
2aa77aa
-#include "libwpg/WPGStreamImplementation.h"
2aa77aa
-#elif WITH_LIBWPG02
2aa77aa
-#include "libwpd-stream/libwpd-stream.h"
2aa77aa
-#endif
2aa77aa
+#include "librevenge-stream/librevenge-stream.h"
2aa77aa
 
2aa77aa
 using namespace libwpg;
2aa77aa
 
2aa77aa
@@ -69,17 +60,9 @@ namespace Internal {
2aa77aa
 
2aa77aa
 SPDocument *
2aa77aa
 WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
2aa77aa
-#if WITH_LIBWPG01
2aa77aa
-    WPXInputStream* input = new libwpg::WPGFileStream(uri);
2aa77aa
-#elif WITH_LIBWPG02
2aa77aa
-    WPXInputStream* input = new WPXFileStream(uri);
2aa77aa
-#endif
2aa77aa
-    if (input->isOLEStream()) {
2aa77aa
-#if WITH_LIBWPG01
2aa77aa
-        WPXInputStream* olestream = input->getDocumentOLEStream();
2aa77aa
-#elif WITH_LIBWPG02
2aa77aa
-        WPXInputStream* olestream = input->getDocumentOLEStream("PerfectOffice_MAIN");
2aa77aa
-#endif
2aa77aa
+    librevenge::RVNGInputStream* input = new librevenge::RVNGFileStream(uri);
2aa77aa
+    if (input->isStructured()) {
2aa77aa
+        librevenge::RVNGInputStream* olestream = input->getSubStreamByName("PerfectOffice_MAIN");
2aa77aa
         if (olestream) {
2aa77aa
             delete input;
2aa77aa
             input = olestream;
2aa77aa
@@ -94,15 +77,17 @@ WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
2aa77aa
         return NULL;
2aa77aa
     }
2aa77aa
 
2aa77aa
-#if WITH_LIBWPG01
2aa77aa
-    libwpg::WPGString output;
2aa77aa
-#elif WITH_LIBWPG02
2aa77aa
-    WPXString output;
2aa77aa
-#endif
2aa77aa
-    if (!libwpg::WPGraphics::generateSVG(input, output)) {
2aa77aa
+	librevenge::RVNGStringVector vec;
2aa77aa
+	librevenge::RVNGSVGDrawingGenerator generator(vec, "");
2aa77aa
+
2aa77aa
+	if (!libwpg::WPGraphics::parse(input, &generator) || vec.empty() || vec[0].empty())
2aa77aa
+ 	{
2aa77aa
         delete input;
2aa77aa
         return NULL;
2aa77aa
-    }
2aa77aa
+ 	}
2aa77aa
+
2aa77aa
+    librevenge::RVNGString output("\n\n");
2aa77aa
+	output.append(vec[0]);
2aa77aa
 
2aa77aa
     //printf("I've got a doc: \n%s", painter.document.c_str());
2aa77aa
 
2aa77aa
-- 
2aa77aa
1.9.3
2aa77aa