workaround for zero word space problem
[swftools.git] / lib / pdf / xpdf-changes.patch
index 5ea3a86..4d17eec 100644 (file)
@@ -39,24 +39,6 @@ diff -u -r1.9 -r1.10
  }
  
  Gfx::Gfx(XRef *xrefA, OutputDev *outA, Dict *resDict,
-@@ -3783,6 +3789,7 @@
-   pushResources(resDict);
-   // save current graphics state
-+  GfxState*mystate = state;
-   saveState();
-   // kill any pre-existing path
-@@ -3848,6 +3855,9 @@
-   // restore graphics state
-   restoreState();
-+  if(state!=mystate) {
-+      fprintf(stderr, "Invalid state nesting in PDF file- file broken?\n");
-+  }
-   // pop resource stack
-   popResources();
 Index: GfxFont.h
 ===================================================================
 RCS file: /home/kramm/cvs/swftools.cache.cvsroot/swftools.cache/pdf2swf/xpdf/GfxFont.h,v
@@ -492,7 +474,7 @@ Index: config.h
 @@ -53,9 +53,9 @@
  
  // user config file name, relative to the user's home directory
- #if defined(VMS) || defined(WIN32)
+ #if defined(VMS) || (defined(WIN32) && !defined(__CYGWIN32__))
 -#define xpdfUserConfigFile "xpdfrc"
 +#define xpdfUserConfigFile "pdf2swf.conf"
  #else
@@ -862,7 +844,7 @@ diff -u -r1.5 -r1.6
  int SplashScreen::test(int x, int y, Guchar value) {
    int xx, yy;
  
-+  return 0;
++  return 1;
 +
    if (value < minVal) {
      return 0;
@@ -976,3 +958,19 @@ diff -u -r1.5 -r1.6
        return gFalse;
      }
      *name = new GString(s);
+--- xpdf/Gfx.cc.orig   2009-03-08 17:10:40.000000000 +0100
++++ xpdf/Gfx.cc        2009-03-08 17:18:23.000000000 +0100
+@@ -3188,8 +3188,11 @@
+                           u, (int)(sizeof(u) / sizeof(Unicode)), &uLen,
+                           &dx, &dy, &originX, &originY);
+       dx = dx * state->getFontSize() + state->getCharSpace();
+-      if (n == 1 && *p == ' ') {
+-      dx += state->getWordSpace();
++      if (n == 1 && (*p == ' ' || *p == 0)) {
++        double w=state->getWordSpace();
++        if (w==0 && dx==0)
++          w=state->getFontSize()/3; // workaround for zero word space
++        dx += w;
+       }
+       dx *= state->getHorizScaling();
+       dy *= state->getFontSize();