This patch makes auto* buld work again, and it includes a corrected
version of my last patch for gr_UnixGraphics.cpp (to make Xft build be
able to position individual glyphs).

Cheers,

-- 
Joaqu�n Cuenca Abela
[EMAIL PROTECTED]
diff -ru abi/configure.ac abi4/configure.ac
--- abi/configure.ac	Sat Aug  3 10:11:45 2002
+++ abi4/configure.ac	Sun Aug  4 13:08:41 2002
@@ -412,8 +412,6 @@
  src/other/GNUmakefile
  src/other/spell/GNUmakefile
  src/other/spell/xp/GNUmakefile
- src/other/fribidi/GNUmakefile
- src/other/fribidi/xp/GNUmakefile
  src/other/ttftool/GNUmakefile
  src/other/ttftool/unix/GNUmakefile
  src/text/GNUmakefile
diff -ru abi/configure.in abi4/configure.in
--- abi/configure.in	Sat Aug  3 10:11:46 2002
+++ abi4/configure.in	Sun Aug  4 13:08:47 2002
@@ -440,8 +440,6 @@
  src/other/GNUmakefile
  src/other/spell/GNUmakefile
  src/other/spell/xp/GNUmakefile
- src/other/fribidi/GNUmakefile
- src/other/fribidi/xp/GNUmakefile
  src/other/ttftool/GNUmakefile
  src/other/ttftool/unix/GNUmakefile
  src/text/GNUmakefile
diff -ru abi/includes.mk abi4/includes.mk
--- abi/includes.mk	Sun Jul 28 10:06:16 2002
+++ abi4/includes.mk	Sun Aug  4 13:33:54 2002
@@ -113,7 +113,7 @@
 	@LIBPOPT_LIBS@ @LIBCURL_LIBS@ @XFT_LIBS@ @THREAD_LIBS@
 
 # BiDi needs a specific lib
-BIDI_LIBS=$(top_builddir)/src/other/fribidi/xp/libFribidi.a
+BIDI_LIBS=-lfribidi
 ABI_LIBS=$(top_builddir)/src/wp/ap/libAp.a $(BIDI_LIBS)
 ABI_LIBS+=$(top_builddir)/src/wp/impexp/libImpExp.a
 ABI_LIBS+=$(top_builddir)/src/af/xap/libXap.a
diff -ru abi/src/af/gr/unix/gr_UnixGraphics.cpp abi4/src/af/gr/unix/gr_UnixGraphics.cpp
--- abi/src/af/gr/unix/gr_UnixGraphics.cpp	Sun Aug  4 10:07:13 2002
+++ abi4/src/af/gr/unix/gr_UnixGraphics.cpp	Sun Aug  4 13:40:07 2002
@@ -317,8 +317,38 @@
 								int * pCharWidths)
 {
 #ifdef USE_XFT
-	XftDrawString32(m_pXftDraw, &m_XftColor, m_pXftFont, xoff, yoff + m_pXftFont->ascent,
-					const_cast<XftChar32*> (pChars + iCharOffset), iLength);
+	if (iLength == 0)
+		return;
+	
+	yoff += m_pXftFont->ascent;
+	
+	if (!pCharWidths)
+		XftDrawString32(m_pXftDraw, &m_XftColor, m_pXftFont, xoff, yoff,
+						const_cast<XftChar32*> (pChars + iCharOffset), iLength);
+	else
+	{
+		XftGlyphSpec aGlyphSpec[256];
+		XftGlyphSpec* pGlyphSpec = aGlyphSpec;
+		
+		if (iLength > 256)
+			pGlyphSpec = new XftGlyphSpec[iLength];
+
+		pGlyphSpec[0].glyph = (FT_UInt) pChars[iCharOffset];
+		pGlyphSpec[0].x = xoff;
+		pGlyphSpec[0].y = yoff;
+
+		for (int i = 1; i < iLength; ++i)
+		{
+			pGlyphSpec[i].glyph = (FT_UInt) pChars[i + iCharOffset];
+			pGlyphSpec[i].x = (short) (pGlyphSpec[i - 1].x + pCharWidths[i - 1]);
+			pGlyphSpec[i].y = yoff;
+		}
+		
+		XftDrawGlyphSpec (m_pXftDraw, &m_XftColor, m_pXftFont, pGlyphSpec, iLength);
+
+		if (pGlyphSpec != aGlyphSpec)
+			delete[] pGlyphSpec;
+	}
 #else
 	if (!m_pFontManager)
 		return;

Reply via email to