[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#356079: tetex-bin: updated poppler patch for poppler 0.5.1



Package: tetex-bin
Severity: wishlist
Tags: patch

Hi Frank!

We upgraded to poppler 0.5.1 in Ubuntu, which grew a better unicode
string handling. Unfortunately this broke the API a bit, so that the
patch needs updating.

I attach the new patch-poppler, and an interdiff between the old and
new one.

I'll file it here so that it doesn't get lost.

Thanks,

Martin
-- 
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?
diff -u tetex-bin-3.0/texk/web2c/pdftexdir/pdftoepdf.cc tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftoepdf.cc
--- tetex-bin-3.0/texk/web2c/pdftexdir/pdftoepdf.cc	2005-12-28 10:29:17.692595280 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftoepdf.cc	2006-03-09 16:49:28.000000000 +0100
@@ -32,6 +32,7 @@
 #include <poppler/goo/gmem.h>
 #include <poppler/goo/gfile.h>
 #include "poppler/Object.h"
+#include "poppler/UGooString.h"
 #include "poppler/Stream.h"
 #include "poppler/Array.h"
 #include "poppler/Dict.h"
@@ -234,7 +235,7 @@
          i < l; 
          i++) {
         Object obj1;
-        obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1));
+        obj->dictAdd(*(new UGooString (*dict->getKey(i))), dict->getValNF(i, &obj1));
         }
 }    
 
@@ -307,7 +308,7 @@
 static void copyDictEntry(Object *obj, int i)
 {
     PdfObject obj1;
-    copyName(obj->dictGetKey(i));
+    copyName(obj->dictGetKey(i)->getCString());
     pdf_puts(" ");
     obj->dictGetValNF(i, &obj1);
     copyObject(&obj1);
@@ -334,7 +335,7 @@
     pdf_puts("<<\n");
     if (r->type == objFont) { // Font dict
         for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-            key = obj->dictGetKey(i);
+            key = obj->dictGetKey(i)->getCString();
             if (strcmp("BaseFont", key) == 0 || 
                 strcmp("Encoding", key) == 0)
                 continue; // skip original values
@@ -346,7 +347,7 @@
     }
     else { // FontDescriptor dict
         for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-            key = obj->dictGetKey(i);
+            key = obj->dictGetKey(i)->getCString();
             if (strcmp("FontName", key) == 0 ||
                 strncmp("FontFile", key, strlen("FontFile")) == 0)
                 continue; // ignore original FontFile/FontName
@@ -455,7 +456,7 @@
     for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
         obj->dictGetValNF(i, &fontRef);
         if (fontRef->isRef())
-            copyFont(obj->dictGetKey(i), &fontRef);
+            copyFont(obj->dictGetKey(i)->getCString(), &fontRef);
         else
             pdftex_fail("pdf inclusion: invalid font in reference type <%s>", 
                         fontRef->getTypeName());
@@ -714,7 +715,7 @@
     epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
     if (page_name) {
         // get page by name
-        GooString name(page_name);
+        UGooString name(page_name);
         LinkDest *link = pdf_doc->doc->findDest(&name);
         if (link == 0 || !link->isOk())
             pdftex_fail("pdf inclusion: invalid destination <%s>",
@@ -999,7 +1000,7 @@
         pdf_puts("/Resources <<\n");
         for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
             obj1->dictGetVal(i, &obj2);
-            key = obj1->dictGetKey(i);
+            key = obj1->dictGetKey(i)->getCString();
             if (strcmp("Font", key) == 0)
                 copyFontResources(&obj2);
             else if (strcmp("ProcSet", key) == 0)
diff -u tetex-bin-3.0/texk/web2c/pdftexdir/pdftosrc.cc tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftosrc.cc
--- tetex-bin-3.0/texk/web2c/pdftexdir/pdftosrc.cc	2005-12-28 10:29:17.692595280 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftosrc.cc	2006-03-09 16:49:36.000000000 +0100
@@ -30,6 +30,7 @@
 #include <poppler/goo/gmem.h>
 #include <poppler/goo/gfile.h>
 #include "poppler/Object.h"
+#include "poppler/UGooString.h"
 #include "poppler/Stream.h"
 #include "poppler/Array.h"
 #include "poppler/Dict.h"
@@ -80,7 +81,7 @@
     }
     srcStream.initNull();
     if (objnum == 0) {
-        catalogDict.dictLookup("SourceObject", &srcStream);
+        catalogDict.dictLookup(UGooString("SourceObject"), &srcStream);
         if (!srcStream.isStream("SourceFile")) {
             fprintf(stderr, "No SourceObject found\n");
             exit(1);
diff -Nurp tetex-bin-3.0/configure tetex-bin-3.0.new/configure
--- tetex-bin-3.0/configure	2005-02-06 19:27:03.000000000 +0100
+++ tetex-bin-3.0.new/configure	2006-03-09 16:49:28.000000000 +0100
@@ -3292,9 +3292,9 @@ export needs_zlib
 
 # we need libxpdf for pdf[ex]tex
 test ! -d $srcdir/$LIBXPDFDIR && : ${needs_libxpdf=no}
-test "$with_pdftex"  != no    && : ${needs_libxpdf=yes}
-test "$with_pdfetex"  != no    && : ${needs_libxpdf=yes}
-test "$with_pdfxtex"  != no    && : ${needs_libxpdf=yes}
+test "$with_pdftex"  != no    && : ${needs_libxpdf=no}
+test "$with_pdfetex"  != no    && : ${needs_libxpdf=no}
+test "$with_pdfxtex"  != no    && : ${needs_libxpdf=no}
 : ${needs_libxpdf=no}
 export needs_libxpdf
 
diff -Nurp tetex-bin-3.0/configure.in tetex-bin-3.0.new/configure.in
--- tetex-bin-3.0/configure.in	2005-02-01 22:59:46.000000000 +0100
+++ tetex-bin-3.0.new/configure.in	2006-03-09 16:49:28.000000000 +0100
@@ -145,9 +145,9 @@ export needs_zlib
 
 # we need libxpdf for pdf[ex]tex
 test ! -d $srcdir/$LIBXPDFDIR && : ${needs_libxpdf=no}
-test "$with_pdftex"  != no    && : ${needs_libxpdf=yes}
-test "$with_pdfetex"  != no    && : ${needs_libxpdf=yes}
-test "$with_pdfxtex"  != no    && : ${needs_libxpdf=yes}
+test "$with_pdftex"  != no    && : ${needs_libxpdf=no}
+test "$with_pdfetex"  != no    && : ${needs_libxpdf=no}
+test "$with_pdfxtex"  != no    && : ${needs_libxpdf=no}
 : ${needs_libxpdf=no}
 export needs_libxpdf
 
diff -Nurp tetex-bin-3.0/texk/web2c/pdfetexdir/pdfetex.mk tetex-bin-3.0.new/texk/web2c/pdfetexdir/pdfetex.mk
--- tetex-bin-3.0/texk/web2c/pdfetexdir/pdfetex.mk	2004-12-20 20:57:52.000000000 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdfetexdir/pdfetex.mk	2006-03-09 16:49:28.000000000 +0100
@@ -8,13 +8,16 @@ Makefile: $(srcdir)/pdfetexdir/pdfetex.m
 pdfetex = @PETEX@ pdfetex
 pdfetexdir = pdfetexdir
 
+# use libpoppler instead of included xpdf code
+ADDLDFLAGS = -lpoppler
+
 # The C sources.
 pdfetex_c = pdfetexini.c pdfetex0.c pdfetex1.c pdfetex2.c pdfetex3.c
 pdfetex_o = pdfetexini.o pdfetex0.o pdfetex1.o pdfetex2.o pdfetex3.o pdfetexextra.o
 
 # Making pdfetex
 pdfetex: pdftexd.h $(pdfetex_o) $(pdfetexextra_o) $(pdftexlibsdep)
-	@CXXHACKLINK@ $(pdfetex_o) $(pdfetexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@
+	@CXXHACKLINK@ $(pdfetex_o) $(pdfetexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@ $(ADDLDFLAGS)
 
 # C file dependencies.
 $(pdfetex_c) pdfetexcoerce.h pdfetexd.h: pdfetex.p $(web2c_texmf)
diff -Nurp tetex-bin-3.0/texk/web2c/pdftexdir/depend.mk tetex-bin-3.0.new/texk/web2c/pdftexdir/depend.mk
--- tetex-bin-3.0/texk/web2c/pdftexdir/depend.mk	2004-03-09 12:20:12.000000000 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/depend.mk	2006-03-09 16:49:28.000000000 +0100
@@ -1,54 +1,4 @@
-epdf.o: epdf.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
- ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-mapfile.o: mapfile.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
- ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-papersiz.o: papersiz.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h
-utils.o: utils.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
- ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h \
- ../../../libs/zlib/zlib.h ../../../libs/zlib/zconf.h \
- ../../../libs/md5/md5.h pdftexextra.h
-vfpacket.o: vfpacket.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h
-pkin.o: pkin.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
- ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-writefont.o: writefont.c ../../../libs/xpdf/goo/gmem.h ptexlib.h \
- ../pdftexd.h ../texmfmp.h ../cpascal.h ../config.h ../help.h \
- ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-writet1.o: writet1.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
- ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-writet3.o: writet3.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
- ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-writezip.o: writezip.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h ../../../libs/zlib/zlib.h ../../../libs/zlib/zconf.h
-writeenc.o: writeenc.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h
-writettf.o: writettf.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h macnames.c
-writejpg.o: writejpg.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h image.h
-writepng.o: writepng.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h image.h
-writeimg.o: writeimg.c ptexlib.h ../pdftexd.h ../texmfmp.h \
- ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h image.h
-pdftoepdf.o: pdftoepdf.cc ../../../libs/xpdf/xpdf/Object.h \
- ../../../libs/xpdf/goo/gmem.h ../../../libs/xpdf/xpdf/Array.h \
- ../../../libs/xpdf/xpdf/Dict.h ../../../libs/xpdf/xpdf/Stream.h \
- ../../../libs/xpdf/xpdf/XRef.h ../../../libs/xpdf/xpdf/Catalog.h \
- ../../../libs/xpdf/xpdf/Page.h ../../../libs/xpdf/xpdf/GfxFont.h \
- ../../../libs/xpdf/xpdf/Error.h epdf.h
-ttf2afm.o: ttf2afm.c macnames.c
-pdftosrc.o: pdftosrc.cc ../../../libs/xpdf/xpdf/Object.h \
- ../../../libs/xpdf/xpdf/Array.h ../../../libs/xpdf/xpdf/Dict.h \
- ../../../libs/xpdf/xpdf/Stream.h ../../../libs/xpdf/xpdf/XRef.h \
- ../../../libs/xpdf/xpdf/Catalog.h ../../../libs/xpdf/xpdf/Page.h \
- ../../../libs/xpdf/xpdf/PDFDoc.h ../../../libs/xpdf/xpdf/Link.h \
- ../../../libs/xpdf/xpdf/Error.h ../../../libs/xpdf/xpdf/config.h
+pdftoepdf.o: pdftoepdf.cc epdf.h ../../kpathsea/c-auto.h \
+  ../../kpathsea/c-proto.h ../../web2c/c-auto.h ../../web2c/config.h \
+  ../../kpathsea/c-fopen.h ../../web2c/pdftexdir/ptexmac.h
+pdftosrc.o: pdftosrc.cc
diff -Nurp tetex-bin-3.0/texk/web2c/pdftexdir/Makefile.in tetex-bin-3.0.new/texk/web2c/pdftexdir/Makefile.in
--- tetex-bin-3.0/texk/web2c/pdftexdir/Makefile.in	2004-08-06 21:41:57.000000000 +0200
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/Makefile.in	2006-03-09 16:49:28.000000000 +0100
@@ -8,7 +8,7 @@ ac_include ../make/library.mk
 kpathsea_srcdir_parent = $(srcdir)/../..
 kpathsea_dir_parent = ../..
 
-ALL_CXXFLAGS = @CXXFLAGS@ @DEFS@ $(XXCFLAGS) -I. -I$(srcdir) -I$(kpathsea_dir_parent) -I$(kpathsea_srcdir_parent) @LIBXPDFCPPFLAGS@
+ALL_CXXFLAGS = @CXXFLAGS@ @DEFS@ $(XXCFLAGS) -I. -I$(srcdir) -I$(kpathsea_dir_parent) -I$(kpathsea_srcdir_parent) -I/usr/include/poppler
 CXX = @CXX@
 
 .SUFFIXES: .cc .o
diff -Nurp tetex-bin-3.0/texk/web2c/pdftexdir/pdftex.mk tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftex.mk
--- tetex-bin-3.0/texk/web2c/pdftexdir/pdftex.mk	2005-02-03 17:16:39.000000000 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftex.mk	2006-03-09 16:49:28.000000000 +0100
@@ -13,6 +13,9 @@ Makefile: pdftexdir/pdftex.mk
 pdftex_bin = pdftex pdfetex pdfxtex ttf2afm pdftosrc
 linux_build_dir = $(HOME)/pdftex/build/linux/texk/web2c
 
+# use libpoppler instead of included xpdf code
+ADDLDFLAGS = -lpoppler
+
 # We build pdftex
 pdftex = @PTEX@ pdftex
 pdftexdir = pdftexdir
@@ -29,7 +32,7 @@ pdftex_o = pdftexini.o pdftex0.o pdftex1
 
 # Making pdftex
 pdftex: $(pdftex_o) $(pdftexextra_o) $(pdftexlibsdep)
-	@CXXHACKLINK@ $(pdftex_o) $(pdftexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@
+	@CXXHACKLINK@ $(pdftex_o) $(pdftexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@ $(ADDLDFLAGS)
 
 # C file dependencies.
 $(pdftex_c) pdftexcoerce.h pdftexd.h: pdftex.p $(web2c_texmf)
@@ -153,7 +156,7 @@ ttf2afm-clean:
 pdftosrc = pdftosrc
 
 pdftosrc: pdftexdir/pdftosrc.o $(LIBXPDFDEP)
-	@CXXHACKLINK@ pdftexdir/pdftosrc.o $(LDLIBXPDF) -lm @CXXLDEXTRA@
+	@CXXHACKLINK@ pdftexdir/pdftosrc.o $(LDLIBXPDF) -lm @CXXLDEXTRA@ $(ADDLDFLAGS)
 pdftexdir/pdftosrc.o:$(srcdir)/pdftexdir/pdftosrc.cc
 	cd pdftexdir && $(MAKE) pdftosrc.o
 check: pdftosrc-check
diff -Nurp tetex-bin-3.0/texk/web2c/pdftexdir/pdftoepdf.cc tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftoepdf.cc
--- tetex-bin-3.0/texk/web2c/pdftexdir/pdftoepdf.cc	2005-02-03 17:16:39.000000000 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftoepdf.cc	2006-03-09 16:49:28.000000000 +0100
@@ -26,22 +26,24 @@ $Id: //depot/Build/source.development/Te
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
-#include <config.h>
-#include "Object.h"
-#include "Stream.h"
-#include "Array.h"
-#include "Dict.h"
-#include "XRef.h"
-#include "Catalog.h"
-#include "Page.h"
-#include "GfxFont.h"
-#include "PDFDoc.h"
-#include "GlobalParams.h"
-#include "Error.h"
+#include <dirent.h>
+#include <poppler/poppler-config.h>
+#include <poppler/goo/GooString.h>
+#include <poppler/goo/gmem.h>
+#include <poppler/goo/gfile.h>
+#include "poppler/Object.h"
+#include "poppler/UGooString.h"
+#include "poppler/Stream.h"
+#include "poppler/Array.h"
+#include "poppler/Dict.h"
+#include "poppler/XRef.h"
+#include "poppler/Link.h"
+#include "poppler/Catalog.h"
+#include "poppler/Page.h"
+#include "poppler/GfxFont.h"
+#include "poppler/PDFDoc.h"
+#include "poppler/GlobalParams.h"
+#include "poppler/Error.h"
 
 #include "epdf.h"
 
@@ -189,7 +191,7 @@ static PdfDocument *find_add_document(ch
 #ifdef DEBUG
     fprintf(stderr, "\nCreating %s (%d)\n", p->file_name, p->occurences);
 #endif
-    GString *docName = new GString(p->file_name);
+    GooString *docName = new GooString(p->file_name);
     p->doc = new PDFDoc(docName);  // takes ownership of docName
     if (!p->doc->isOk() || !p->doc->okToPrint()) {
         pdftex_fail("xpdf: reading PDF image failed");
@@ -233,7 +235,7 @@ static void initDictFromDict (PdfObject 
          i < l; 
          i++) {
         Object obj1;
-        obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1));
+        obj->dictAdd(*(new UGooString (*dict->getKey(i))), dict->getValNF(i, &obj1));
         }
 }    
 
@@ -306,7 +308,7 @@ static void copyName(char *s)
 static void copyDictEntry(Object *obj, int i)
 {
     PdfObject obj1;
-    copyName(obj->dictGetKey(i));
+    copyName(obj->dictGetKey(i)->getCString());
     pdf_puts(" ");
     obj->dictGetValNF(i, &obj1);
     copyObject(&obj1);
@@ -333,7 +335,7 @@ static void copyFontDict(Object *obj, In
     pdf_puts("<<\n");
     if (r->type == objFont) { // Font dict
         for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-            key = obj->dictGetKey(i);
+            key = obj->dictGetKey(i)->getCString();
             if (strcmp("BaseFont", key) == 0 || 
                 strcmp("Encoding", key) == 0)
                 continue; // skip original values
@@ -345,7 +347,7 @@ static void copyFontDict(Object *obj, In
     }
     else { // FontDescriptor dict
         for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-            key = obj->dictGetKey(i);
+            key = obj->dictGetKey(i)->getCString();
             if (strcmp("FontName", key) == 0 ||
                 strncmp("FontFile", key, strlen("FontFile")) == 0)
                 continue; // ignore original FontFile/FontName
@@ -454,7 +456,7 @@ static void copyFontResources(Object *ob
     for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
         obj->dictGetValNF(i, &fontRef);
         if (fontRef->isRef())
-            copyFont(obj->dictGetKey(i), &fontRef);
+            copyFont(obj->dictGetKey(i)->getCString(), &fontRef);
         else
             pdftex_fail("pdf inclusion: invalid font in reference type <%s>", 
                         fontRef->getTypeName());
@@ -539,7 +541,7 @@ static void copyObject(Object *obj)
     int  i, l, c;
     Ref ref;
     char *p;
-    GString *s;
+    GooString *s;
     if (obj->isBool()) {
         pdf_printf("%s", obj->getBool() ? "true" : "false");
     }
@@ -686,7 +688,7 @@ read_pdf_info(char *image_name, char *pa
     float pdf_version_found, pdf_version_wanted;
     // initialize
     if (!isInit) {
-        globalParams = new GlobalParams();
+        globalParams = new GlobalParams(NULL);
         globalParams->setErrQuiet(gFalse);
         isInit = gTrue;
     }
@@ -713,7 +715,7 @@ read_pdf_info(char *image_name, char *pa
     epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
     if (page_name) {
         // get page by name
-        GString name(page_name);
+        UGooString name(page_name);
         LinkDest *link = pdf_doc->doc->findDest(&name);
         if (link == 0 || !link->isOk())
             pdftex_fail("pdf inclusion: invalid destination <%s>",
@@ -998,7 +1000,7 @@ write_epdf(void)
         pdf_puts("/Resources <<\n");
         for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
             obj1->dictGetVal(i, &obj2);
-            key = obj1->dictGetKey(i);
+            key = obj1->dictGetKey(i)->getCString();
             if (strcmp("Font", key) == 0)
                 copyFontResources(&obj2);
             else if (strcmp("ProcSet", key) == 0)
diff -Nurp tetex-bin-3.0/texk/web2c/pdftexdir/pdftosrc.cc tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftosrc.cc
--- tetex-bin-3.0/texk/web2c/pdftexdir/pdftosrc.cc	2004-03-22 21:39:54.000000000 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdftexdir/pdftosrc.cc	2006-03-09 16:49:36.000000000 +0100
@@ -25,21 +25,22 @@ $Id: //depot/Build/source.development/Te
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
-#include "Object.h"
-#include "Stream.h"
-#include "Array.h"
-#include "Dict.h"
-#include "XRef.h"
-#include "Catalog.h"
-#include "Page.h"
-#include "GfxFont.h"
-#include "PDFDoc.h"
-#include "GlobalParams.h"
-#include "Error.h"
+#include <dirent.h>
+#include <poppler/goo/GooString.h>
+#include <poppler/goo/gmem.h>
+#include <poppler/goo/gfile.h>
+#include "poppler/Object.h"
+#include "poppler/UGooString.h"
+#include "poppler/Stream.h"
+#include "poppler/Array.h"
+#include "poppler/Dict.h"
+#include "poppler/XRef.h"
+#include "poppler/Catalog.h"
+#include "poppler/Page.h"
+#include "poppler/GfxFont.h"
+#include "poppler/PDFDoc.h"
+#include "poppler/GlobalParams.h"
+#include "poppler/Error.h"
 
 static XRef *xref = 0;
 
@@ -47,7 +48,7 @@ int main(int argc, char *argv[])
 {
     char *p, buf[1024];
     PDFDoc *doc;
-    GString *fileName;
+    GooString *fileName;
     Stream *s;
     Object srcStream, srcName, catalogDict;
     FILE *outfile;
@@ -59,8 +60,8 @@ int main(int argc, char *argv[])
         fprintf(stderr, "Usage: pdftosrc <PDF-file> [<stream-object-number>]\n");
         exit(1);
     }
-    fileName = new GString(argv[1]);
-    globalParams = new GlobalParams();
+    fileName = new GooString(argv[1]);
+    globalParams = new GlobalParams(NULL);
     doc = new PDFDoc(fileName);
     if (!doc->isOk()) {
         fprintf(stderr, "Invalid PDF file\n");
@@ -80,7 +81,7 @@ int main(int argc, char *argv[])
     }
     srcStream.initNull();
     if (objnum == 0) {
-        catalogDict.dictLookup("SourceObject", &srcStream);
+        catalogDict.dictLookup(UGooString("SourceObject"), &srcStream);
         if (!srcStream.isStream("SourceFile")) {
             fprintf(stderr, "No SourceObject found\n");
             exit(1);
diff -Nurp tetex-bin-3.0/texk/web2c/pdfxtexdir/pdfxtex.mk tetex-bin-3.0.new/texk/web2c/pdfxtexdir/pdfxtex.mk
--- tetex-bin-3.0/texk/web2c/pdfxtexdir/pdfxtex.mk	2005-02-03 19:42:26.000000000 +0100
+++ tetex-bin-3.0.new/texk/web2c/pdfxtexdir/pdfxtex.mk	2006-03-09 16:49:28.000000000 +0100
@@ -8,13 +8,16 @@ Makefile: $(srcdir)/pdfxtexdir/pdfxtex.m
 pdfxtex = @PXTEX@ pdfxtex
 pdfxtexdir = pdfxtexdir
 
+# use libpoppler instead of included xpdf code
+ADDLDFLAGS = -lpoppler
+
 # The C sources.
 pdfxtex_c = pdfxtexini.c pdfxtex0.c pdfxtex1.c pdfxtex2.c pdfxtex3.c
 pdfxtex_o = pdfxtexini.o pdfxtex0.o pdfxtex1.o pdfxtex2.o pdfxtex3.o pdfxtexextra.o
 
 # Making pdfxtex
 pdfxtex: pdftexd.h $(pdfxtex_o) $(pdfxtexextra_o) $(pdftexlibsdep)
-	@CXXHACKLINK@ $(pdfxtex_o) $(pdfxtexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@
+	@CXXHACKLINK@ $(pdfxtex_o) $(pdfxtexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@ $(ADDLDFLAGS)
 
 # C file dependencies.
 $(pdfxtex_c) pdfxtexcoerce.h pdfxtexd.h: pdfxtex.p $(web2c_texmf) pdfxtexdir/pdfxtex.defines

Attachment: signature.asc
Description: Digital signature


Reply to: