On Sun, 2008-11-02 at 11:23 -0600, DJ Lucas wrote:
> Dennis J Perkins wrote:
> > Has anyone been able to build inkscape-0.46?  I am getting this error:
> > 
> >  no matching function for call to 'GfxFont::getNextChar(char*&, int&,
> > CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'
> > 
> > Poppler is installed, so I don't know why it is complaining.
> > 
> 
> Sorry, but no I have not, however, a quick Google search suggests that 
> Poppler is the culprit.  Gentoo has it fixed in their Inkscape ebuild. 
> See this Gentoo bug for more information and follow the trail for a patch:
> 
> http://bugs.gentoo.org/show_bug.cgi?id=224883
> 
> -- DJ Lucas
> 

You're right, poppler is the problem.  It took some googling and
experimenting to find the cause.  Apparently the definition of
getNextChar changed in poppler.  Changing three lines of code fixes the
problem.

I have Inkscape working with poppler-0.10.0.  Gentoo is using 0.8.4.


This patch fixes the problem.  It's the same as the Gentoo patch, but I
was learning how to build patches on Linux and created this after
manually patching three lines.

--- inkscape-0.46/src/extension/internal/pdfinput/pdf-parser.cpp
2008-03-10 22:20:21.000000000 -0600
+++ /home/dennis/pdf-parser.cpp 2008-11-01 22:35:51.000000000 -0600
@@ -2196,7 +2196,7 @@
   int wMode;
   double riseX, riseY;
   CharCode code;
-  Unicode u[8];
+  Unicode *u = NULL;
   double x, y, dx, dy, dx2, dy2, curX, curY, tdx, tdy, lineX, lineY;
   double originX, originY, tOriginX, tOriginY;
   double oldCTM[6], newCTM[6];
@@ -2244,7 +2244,7 @@
     len = s->getLength();
     while (len > 0) {
       n = font->getNextChar(p, len, &code,
-                           u, (int)(sizeof(u) / sizeof(Unicode)), &uLen,
+                            &u, &uLen,
                            &dx, &dy, &originX, &originY);
       dx = dx * state->getFontSize() + state->getCharSpace();
       if (n == 1 && *p == ' ') {
@@ -2293,7 +2293,7 @@
     len = s->getLength();
     while (len > 0) {
       n = font->getNextChar(p, len, &code,
-                           u, (int)(sizeof(u) / sizeof(Unicode)), &uLen,
+                           &u, &uLen,
                            &dx, &dy, &originX, &originY);
       
       if (wMode) {

-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to