rpms/openoffice.org/F-9 openoffice.org-3.0.0.ooo88303.vcl.dynamicfontoptions.patch, NONE, 1.1 openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch, 1.20, 1.21 openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch, 1.2, 1.3 openoffice.org.spec, 1.1510, 1.1511

Caolan McNamara caolanm at fedoraproject.org
Wed Nov 19 12:08:38 UTC 2008


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21229

Modified Files:
	openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch 
	openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch 
	openoffice.org.spec 
Added Files:
	openoffice.org-3.0.0.ooo88303.vcl.dynamicfontoptions.patch 
Log Message:
Resolves: rhbz#471103 improve font-settings

openoffice.org-3.0.0.ooo88303.vcl.dynamicfontoptions.patch:

--- NEW FILE openoffice.org-3.0.0.ooo88303.vcl.dynamicfontoptions.patch ---
diff -ru vcl/inc/vcl/glyphcache.hxx vcl/inc/vcl/glyphcache.hxx
--- openoffice.org.orig/vcl/inc/vcl/glyphcache.hxx	2008-04-15 08:44:36.000000000 +0100
+++ openoffice.org/vcl/inc/vcl/glyphcache.hxx	2008-04-15 16:24:06.000000000 +0100
@@ -105,8 +105,9 @@
     struct IFSD_Hash{ size_t operator()( const ImplFontSelectData& ) const; };
     typedef ::std::hash_map<ImplFontSelectData,ServerFont*,IFSD_Hash,IFSD_Equal > FontList;
     FontList                    maFontList;
-
+public:
     ULONG                       mnMaxSize;      // max overall cache size in bytes
+private:
     mutable ULONG               mnBytesUsed;
     mutable long                mnLruIndex;
     mutable int                 mnGlyphCount;
diff -ru vcl/inc/vcl/settings.hxx vcl/inc/vcl/settings.hxx
--- openoffice.org.orig/vcl/inc/vcl/settings.hxx	2008-04-15 08:44:37.000000000 +0100
+++ openoffice.org/vcl/inc/vcl/settings.hxx	2008-04-15 08:47:15.000000000 +0100
@@ -449,6 +449,7 @@
     ULONG                           mnSymbolsStyle;
     ULONG                           mnPreferredSymbolsStyle;
     USHORT                          mnSkipDisabledInMenus;
+    const void*                     mpFontOptions;
 };
 
 // -----------------
@@ -746,6 +747,11 @@
     BOOL							GetSkipDisabledInMenus() const
                                         { return (BOOL) mpData->mnSkipDisabledInMenus; }
 
+    void                            SetCairoFontOptions( const void *pOptions )
+                                        { CopyData(); mpData->mpFontOptions = pOptions;  }
+    const void*                     GetCairoFontOptions() const
+                                        { return mpData->mpFontOptions; }
+
     void                            SetAppFont( const Font& rFont )
                                         { CopyData(); mpData->maAppFont = rFont; }
     const Font&                     GetAppFont() const
diff -ru vcl/source/app/settings.cxx vcl/source/app/settings.cxx
--- openoffice.org.orig/vcl/source/app/settings.cxx	2008-04-15 08:44:34.000000000 +0100
+++ openoffice.org/vcl/source/app/settings.cxx	2008-04-15 08:48:27.000000000 +0100
@@ -466,6 +466,7 @@
     mnToolbarIconSize			= STYLE_TOOLBAR_ICONSIZE_UNKNOWN;
     mnSymbolsStyle				= STYLE_SYMBOLS_AUTO;
     mnPreferredSymbolsStyle			= STYLE_SYMBOLS_AUTO;
+    mpFontOptions              = NULL;
 
     SetStandardStyles();
 }
@@ -568,6 +569,7 @@
     mnToolbarIconSize			= rData.mnToolbarIconSize;
     mnSymbolsStyle				= rData.mnSymbolsStyle;
     mnPreferredSymbolsStyle			= rData.mnPreferredSymbolsStyle;
+    mpFontOptions               = rData.mpFontOptions;
 }
 
 // -----------------------------------------------------------------------
diff -ru vcl/source/window/winproc.cxx vcl/source/window/winproc.cxx
--- openoffice.org.orig/vcl/source/window/winproc.cxx	2008-04-15 08:44:34.000000000 +0100
+++ openoffice.org/vcl/source/window/winproc.cxx	2008-04-15 16:40:53.000000000 +0100
@@ -78,6 +78,7 @@
 extern void MyOutputDebugString( char *s);
 #endif
 #endif
+#include <vcl/glyphcache.hxx>
 
 
 //#define USE_NEW_RTL_IMPLEMENTATION
@@ -2225,9 +2226,14 @@
                 nType = DATACHANGED_DISPLAY;
                 break;
             case SALEVENT_FONTCHANGED:
+            {
+                ULONG nOldSize = GlyphCache::GetInstance().mnMaxSize;
+                GlyphCache::GetInstance().mnMaxSize = 0;
                 OutputDevice::ImplUpdateAllFontData( TRUE );
+                GlyphCache::GetInstance().mnMaxSize = nOldSize;
                 nType = DATACHANGED_FONTS;
                 break;
+            }
             case SALEVENT_DATETIMECHANGED:
                 nType = DATACHANGED_DATETIME;
                 break;
diff -ru vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
--- openoffice.org.orig/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx	2008-04-15 08:44:28.000000000 +0100
+++ openoffice.org/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx	2008-04-15 16:21:17.000000000 +0100
@@ -3286,6 +3287,11 @@
                  aStyleSet.GetWindowColor().IsDark() );
     aStyleSet.SetHighContrastMode( bHC );
 
+    const cairo_font_options_t *pNewOptions = 0;
+    if (GdkScreen* pScreen = gdk_display_get_screen( gdk_display_get_default(), m_nScreen ))
+        pNewOptions = gdk_screen_get_font_options(pScreen);
+    aStyleSet.SetCairoFontOptions( pNewOptions );
+
     // finally update the collected settings
     rSettings.SetStyleSettings( aStyleSet );
 
diff -ru vcl/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
--- openoffice.org.orig/vcl/unx/gtk/window/gtkframe.cxx	2008-04-15 08:44:28.000000000 +0100
+++ openoffice.org/vcl/unx/gtk/window/gtkframe.cxx	2008-04-15 16:38:26.000000000 +0100
@@ -2942,10 +2942,13 @@
     // redraw itself to adjust to the new style
     // where there IS no new style resulting in tremendous unnecessary flickering
     if( pPrevious != NULL )
+    {
         // signalStyleSet does NOT usually have the gdk lock
         // so post user event to safely dispatch the SALEVENT_SETTINGSCHANGED
         // note: settings changed for multiple frames is avoided in winproc.cxx ImplHandleSettings
         pThis->getDisplay()->SendInternalEvent( pThis, NULL, SALEVENT_SETTINGSCHANGED );
+        pThis->getDisplay()->SendInternalEvent( pThis, NULL, SALEVENT_FONTCHANGED );
+    }
 
     /* #i64117# gtk sets a nice background pixmap
     *  but we actually don't really want that, so save
diff -ru vcl/unx/source/gdi/salgdi3.cxx vcl/unx/source/gdi/salgdi3.cxx
--- openoffice.org.orig/vcl/unx/source/gdi/salgdi3.cxx	2008-04-15 08:44:29.000000000 +0100
+++ openoffice.org/vcl/unx/source/gdi/salgdi3.cxx	2008-04-15 11:58:46.000000000 +0100
@@ -782,6 +782,7 @@
     void (*mp_set_font_matrix)(cairo_t *, const cairo_matrix_t *);
     void (*mp_show_glyphs)(cairo_t *, const cairo_glyph_t *, int );
     void (*mp_set_source_rgb)(cairo_t *, double , double , double );
+    void (*mp_set_font_options)(cairo_t *, const void *);
 
     bool canEmbolden() const { return false; }
 
@@ -817,6 +818,8 @@
         { (*mp_show_glyphs)(cr, glyphs, no_glyphs); }
     void set_source_rgb(cairo_t *cr, double red, double green, double blue)
         { (*mp_set_source_rgb)(cr, red, green, blue); }
+    void set_font_options(cairo_t *cr, const void *options)
+        { (*mp_set_font_options)(cr, options); }
 };
 
 static CairoWrapper* pCairoInstance = NULL;
@@ -875,6 +878,8 @@
         osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_show_glyphs" );
     mp_set_source_rgb = (void (*)(cairo_t *, double , double , double ))
         osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_source_rgb" );
+    mp_set_font_options = (void (*)(cairo_t *, const void *options ))
+        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_font_options" );
 
     if( !( 
             mp_xlib_surface_create_with_xrender_format &&
@@ -891,7 +896,8 @@
             mp_matrix_rotate &&
             mp_set_font_matrix &&
             mp_show_glyphs &&
-            mp_set_source_rgb
+            mp_set_source_rgb &&
+            mp_set_font_options
         ) )
     {
         osl_unloadModule( mpCairoLib );
@@ -1009,6 +1015,9 @@
     cairo_t *cr = rCairo.create(surface);
     rCairo.surface_destroy(surface);
 
+    if (const void *pOptions = Application::GetSettings().GetStyleSettings().GetCairoFontOptions())
+        rCairo.set_font_options(cr, pOptions);
+
     if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) )
     {
 	for (long i = 0; i < pClipRegion_->numRects; ++i)

openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch:

Index: openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/F-9/openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch	23 Apr 2008 08:46:47 -0000	1.20
+++ openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch	19 Nov 2008 12:08:36 -0000	1.21
@@ -1,7 +1,11 @@
-diff -ru vcl/inc/impfont.hxx vcl/inc/impfont.hxx
---- openoffice.org.orig/vcl/inc/vcl/impfont.hxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/impfont.hxx	2006-05-05 09:39:11.000000000 +0100
-@@ -155,6 +155,42 @@
+Index: inc/vcl/impfont.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/impfont.hxx,v
+retrieving revision 1.3
+diff -u -r1.3 impfont.hxx
+--- openoffice.org.orig/vcl/inc/vcl/impfont.hxx	11 Apr 2008 07:39:29 -0000	1.3
++++ openoffice.org/vcl/inc/vcl/impfont.hxx	30 May 2008 09:28:28 -0000
+@@ -135,6 +135,42 @@
      bool    operator==( const ImplFontMetric& ) const;
  };
  
@@ -23,7 +27,7 @@
 +        meAntiAlias(ANTIALIAS_DONTKNOW), 
 +        meAutoHint(AUTOHINT_DONTKNOW), 
 +        meHinting(HINTING_DONTKNOW), 
-+        meHintStyle(HINT_FULL)
++        meHintStyle(HINT_SLIGHT)
 +    {}
 +    ImplFontHints(FontEmbeddedBitmap eEmbeddedBitmap, FontAntiAlias eAntiAlias, 
 +        FontAutoHint eAutoHint, FontHinting eHinting, FontHintStyle eHintStyle) :
@@ -44,10 +48,14 @@
  // -------------------
  // - ImplFontCharMap -
  // -------------------
-diff -ru vcl/inc/outdev.hxx vcl/inc/outdev.hxx
---- openoffice.org.orig/vcl/inc/vcl/outdev.hxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/outdev.hxx	2006-05-05 10:27:05.000000000 +0100
-@@ -106,6 +106,8 @@
+Index: inc/vcl/outdev.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/outdev.hxx,v
+retrieving revision 1.6
+diff -u -r1.6 outdev.hxx
+--- openoffice.org.orig/vcl/inc/vcl/outdev.hxx	11 Apr 2008 07:47:31 -0000	1.6
++++ openoffice.org/vcl/inc/vcl/outdev.hxx	30 May 2008 09:28:33 -0000
+@@ -77,6 +77,8 @@
  class FontCharMap;
  class SalLayout;
  class ImplLayoutArgs;
@@ -55,8 +63,8 @@
 +class ImplFontAttributes;
  class VirtualDevice;
  
- namespace basegfx {
-@@ -566,6 +568,7 @@
+ namespace com {
+@@ -549,6 +551,7 @@
  
      SAL_DLLPRIVATE static FontEmphasisMark ImplGetEmphasisMarkStyle( const Font& rFont );
      SAL_DLLPRIVATE static BOOL ImplIsUnderlineAbove( const Font& );
@@ -64,10 +72,14 @@
  //#endif
  
  protected:
-diff -ru vcl/inc/outfont.hxx vcl/inc/outfont.hxx
---- openoffice.org.orig/vcl/inc/vcl/outfont.hxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/outfont.hxx	2006-05-04 14:37:46.000000000 +0100
-@@ -118,8 +118,6 @@
+Index: inc/vcl/outfont.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/outfont.hxx,v
+retrieving revision 1.6
+diff -u -r1.6 outfont.hxx
+--- openoffice.org.orig/vcl/inc/vcl/outfont.hxx	11 Apr 2008 07:48:01 -0000	1.6
++++ openoffice.org/vcl/inc/vcl/outfont.hxx	30 May 2008 09:28:33 -0000
+@@ -101,8 +101,6 @@
      bool               IsDeviceFont() const      { return mbDevice; }
      bool               IsEmbeddable() const      { return mbEmbeddable; }
      bool               IsSubsettable() const     { return mbSubsettable; }
@@ -76,7 +88,7 @@
  
  public: // TODO: hide members behind accessor methods
      String             maMapNames;       // List of family name aliass separated with ';'
-@@ -128,8 +126,6 @@
+@@ -111,8 +109,6 @@
      bool               mbDevice;         // true: built in font
      bool               mbSubsettable;    // true: a subset of the font can be created
      bool               mbEmbeddable;     // true: the font can be embedded
@@ -85,10 +97,14 @@
  };
  
  // ----------------
-diff -ru vcl/inc/salgdi.hxx vcl/inc/salgdi.hxx
---- openoffice.org.orig/vcl/inc/vcl/salgdi.hxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/salgdi.hxx	2006-05-05 10:40:08.000000000 +0100
-@@ -215,6 +215,8 @@
+Index: inc/vcl/salgdi.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/salgdi.hxx,v
+retrieving revision 1.5
+diff -u -r1.5 salgdi.hxx
+--- openoffice.org.orig/vcl/inc/vcl/salgdi.hxx	11 Apr 2008 07:53:59 -0000	1.5
++++ openoffice.org/vcl/inc/vcl/salgdi.hxx	30 May 2008 09:28:35 -0000
+@@ -223,6 +223,8 @@
      void                   ReleaseFonts() { SetFont( NULL, 0 ); }
      // get the current font's metrics
      virtual void			GetFontMetric( ImplFontMetricData* ) = 0;
@@ -97,10 +113,14 @@
      // get kernign pairs of the current font
      // return only PairCount if (pKernPairs == NULL)
      virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs ) = 0;
-diff -ru vcl/inc/vclenum.hxx vcl/inc/vclenum.hxx
---- openoffice.org.orig/vcl/inc/vcl/vclenum.hxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/vclenum.hxx	2006-05-04 15:53:15.000000000 +0100
-@@ -289,6 +289,27 @@
+Index: inc/vcl/vclenum.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/vclenum.hxx,v
+retrieving revision 1.5
+diff -u -r1.5 vclenum.hxx
+--- openoffice.org.orig/vcl/inc/vcl/vclenum.hxx	11 Apr 2008 08:07:45 -0000	1.5
++++ openoffice.org/vcl/inc/vcl/vclenum.hxx	30 May 2008 09:28:42 -0000
+@@ -284,6 +284,27 @@
  
  #endif
  
@@ -128,10 +148,14 @@
  // ------------------------------------------------------------
  
  #ifndef ENUM_KEYFUNCTYPE_DECLARED
-diff -ru vcl/source/gdi/outdev3.cxx vcl/source/gdi/outdev3.cxx
---- openoffice.org.orig/vcl/source/gdi/outdev3.cxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/source/gdi/outdev3.cxx	2006-05-05 10:27:34.000000000 +0100
-@@ -7250,6 +7250,14 @@
+Index: source/gdi/outdev3.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/gdi/outdev3.cxx,v
+retrieving revision 1.240
+diff -u -r1.240 outdev3.cxx
+--- openoffice.org.orig/vcl/source/gdi/outdev3.cxx	11 Apr 2008 08:49:58 -0000	1.240
++++ openoffice.org/vcl/source/gdi/outdev3.cxx	30 May 2008 09:29:42 -0000
+@@ -7332,6 +7332,14 @@
  
  // -----------------------------------------------------------------------
  
@@ -146,10 +170,180 @@
  FontMetric OutputDevice::GetFontMetric() const
  {
      DBG_TRACE( "OutputDevice::GetFontMetric()" );
-diff -ru vcl/source/glyphs/gcach_ftyp.hxx vcl/source/glyphs/gcach_ftyp.hxx
---- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.hxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/source/glyphs/gcach_ftyp.hxx	2006-05-04 14:53:16.000000000 +0100
-@@ -93,10 +93,6 @@
+Index: source/glyphs/gcach_ftyp.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
+retrieving revision 1.149
+diff -u -r1.149 gcach_ftyp.cxx
+--- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.cxx	11 Apr 2008 08:57:28 -0000	1.149
++++ openoffice.org/vcl/source/glyphs/gcach_ftyp.cxx	30 May 2008 09:30:01 -0000
+@@ -43,6 +43,7 @@
+ #include <vcl/impfont.hxx>
+ #include <vcl/bitmap.hxx>
+ #include <vcl/bmpacc.hxx>
++#include <vcl/virdev.hxx>
+ 
+ #include <tools/poly.hxx>
+ #include <basegfx/matrix/b2dhommatrix.hxx>
+@@ -623,9 +624,6 @@
+             aDFA.mbSubsettable= false;
+             aDFA.mbEmbeddable = false;
+ 
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+-            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+-
+             FT_Done_Face( aFaceFT );
+             AddFontFile( aCFileName, nFaceNum, ++mnNextFontId, aDFA, NULL );
+             ++nCount;
+@@ -705,6 +703,7 @@
+ :   ServerFont( rFSD ),
+     mnPrioEmbedded(nDefaultPrioEmbedded),
+     mnPrioAntiAlias(nDefaultPrioAntiAlias),
++    mnPrioAutoHint(nDefaultPrioAutoHint),
+     mpFontInfo( pFI ),
+     maFaceFT( NULL ),
+     maSizeFT( NULL ),
+@@ -834,42 +833,69 @@
+ 
+     mbArtItalic = (rFSD.meItalic != ITALIC_NONE && pFI->GetFontAttributes().GetSlant() == ITALIC_NONE);
+     mbArtBold = (rFSD.meWeight > WEIGHT_MEDIUM && pFI->GetFontAttributes().GetWeight() <= WEIGHT_MEDIUM);
++    mbUseGamma = false;
++    if (mbArtBold)
++    {
++	    //static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
++	    //static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
++	    //static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
++	    //static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
++	    //static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
++	    //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
++	    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
++	    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
++	    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
++		&& rFSD.mnHeight < 20)
++		mbUseGamma = true;
++    }
++
++    ImplFontHints aHints;
++    VirtualDevice vdev( 1 );
++    vdev.ImplGetFontHints( pFI->GetFontAttributes(), mnWidth, aHints );
++
++    FontAutoHint eHint = aHints.GetUseAutoHint();
++    if (eHint == AUTOHINT_DONTKNOW)
++        eHint = mbUseGamma ? AUTOHINT_TRUE : AUTOHINT_FALSE;
+ 
+-    //static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
+-    //static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
+-    //static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
+-    //static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
+-    //static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
+-    //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
+-    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
+-    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
+-    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
+-        && rFSD.mnHeight < 20)
+-        mbUseGamma = true;
+-    else
+-        mbUseGamma = false;
+-
+-    if (mbUseGamma)
++    if (eHint == AUTOHINT_TRUE)
+         mnLoadFlags |= FT_LOAD_FORCE_AUTOHINT;
+ 
+     if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
+         mnLoadFlags |= FT_LOAD_NO_HINTING;
+     mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
+ 
+-    if (mpFontInfo->DontUseAntiAlias())
+-        mnPrioAntiAlias = 0;
+-    if (mpFontInfo->DontUseEmbeddedBitmaps())
+-        mnPrioEmbedded = 0;
++    if (aHints.DontUseAntiAlias())
++      mnPrioAntiAlias = 0;
++    if (aHints.DontUseEmbeddedBitmaps())
++      mnPrioEmbedded = 0;
++    if (aHints.DontUseHinting())
++      mnPrioAutoHint = 0;
+ 
+ #if (FTVERSION >= 2005) || defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
+-    if( nDefaultPrioAutoHint <= 0 )
++    if( mnPrioAutoHint <= 0 )
+ #endif
+         mnLoadFlags |= FT_LOAD_NO_HINTING;
+ 
+-#ifdef FT_LOAD_TARGET_LIGHT
+-    // enable "light hinting" if available
++#if defined(FT_LOAD_TARGET_LIGHT) && defined(FT_LOAD_TARGET_NORMAL)
+     if( !(mnLoadFlags & FT_LOAD_NO_HINTING) && (nFTVERSION >= 2103))
+-        mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
++    {
++       mnLoadFlags |= FT_LOAD_TARGET_NORMAL;
++       switch (aHints.GetHintStyle())
++       {
++           case HINT_NONE:
++                mnLoadFlags |= FT_LOAD_NO_HINTING;
++                break;
++           case HINT_SLIGHT:
++                mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
++                break;
++           case HINT_MEDIUM:
++                break;
++           case HINT_FULL:
++           default:
++                break;
++       }
++    }
++
+ #endif
+ 
+     if( ((mnCos != 0) && (mnSin != 0)) || (mnPrioEmbedded <= 0) )
+@@ -1204,13 +1230,15 @@
+         }
+     }
+ 
+-#if !defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
++#if 0
+     // #95556# autohinting not yet optimized for non-western glyph styles
+     if( !(mnLoadFlags & (FT_LOAD_NO_HINTING | FT_LOAD_FORCE_AUTOHINT) )
+     &&  ( (aChar >= 0x0600 && aChar < 0x1E00)   // south-east asian + arabic
+         ||(aChar >= 0x2900 && aChar < 0xD800)   // CJKV
+         ||(aChar >= 0xF800) ) )                 // presentation + symbols
++    {
+         nGlyphFlags |= GF_UNHINTED;
++    }
+ #endif
+ 
+     if( nGlyphIndex != 0 )
+@@ -1341,11 +1369,11 @@
+ #if (FTVERSION >= 2002)
+     // for 0/90/180/270 degree fonts enable autohinting even if not advisable
+     // non-hinted and non-antialiased bitmaps just look too ugly
+-    if( (mnCos==0 || mnSin==0) && (nDefaultPrioAutoHint > 0) )
++    if( (mnCos==0 || mnSin==0) && (mnPrioAutoHint > 0) )
+         nLoadFlags &= ~FT_LOAD_NO_HINTING;
+ #endif
+ 
+-    if( mnPrioEmbedded <= nDefaultPrioAutoHint )
++    if( mnPrioEmbedded <= mnPrioAutoHint )
+         nLoadFlags |= FT_LOAD_NO_BITMAP;
+ 
+     FT_Error rc = -1;
+@@ -1496,7 +1524,7 @@
+     // autohinting in FT<=2.0.4 makes antialiased glyphs look worse
+     nLoadFlags |= FT_LOAD_NO_HINTING;
+ #else
+-    if( (nGlyphFlags & GF_UNHINTED) || (nDefaultPrioAutoHint < mnPrioAntiAlias) )
++    if( (nGlyphFlags & GF_UNHINTED) || (mnPrioAutoHint < mnPrioAntiAlias) )
+         nLoadFlags |= FT_LOAD_NO_HINTING;
+ #endif
+ 
+Index: source/glyphs/gcach_ftyp.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.hxx,v
+retrieving revision 1.41
+diff -u -r1.41 gcach_ftyp.hxx
+--- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.hxx	11 Apr 2008 08:57:45 -0000	1.41
++++ openoffice.org/vcl/source/glyphs/gcach_ftyp.hxx	30 May 2008 09:30:01 -0000
+@@ -88,10 +88,6 @@
      int                   GetFaceNum() const        { return mnFaceNum; }
      int                   GetSynthetic() const      { return mnSynthetic; }
      sal_IntPtr            GetFontId() const         { return mnFontId; }
@@ -160,7 +354,7 @@
      bool                  IsSymbolFont() const      { return maDevFontAttributes.IsSymbolFont(); }
      const ImplFontAttributes& GetFontAttributes() const { return maDevFontAttributes; }
  
-@@ -212,6 +208,7 @@
+@@ -216,6 +212,7 @@
      int                         mnWidth;
      int                         mnPrioEmbedded;
      int                         mnPrioAntiAlias;
@@ -168,10 +362,111 @@
      FtFontInfo*                 mpFontInfo;
      FT_Int                      mnLoadFlags;
      double                      mfStretch;
-diff -ru vcl/unx/inc/pspgraphics.h vcl/unx/inc/pspgraphics.h
---- openoffice.org.orig/vcl/unx/inc/pspgraphics.h	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/unx/inc/pspgraphics.h	2006-05-05 10:41:23.000000000 +0100
-@@ -121,6 +121,7 @@
+Index: unx/headless/svpgdi.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpgdi.cxx,v
+retrieving revision 1.5
+diff -u -r1.5 svpgdi.cxx
+--- openoffice.org.orig/vcl/unx/headless/svpgdi.cxx	11 Apr 2008 09:28:48 -0000	1.5
++++ openoffice.org/vcl/unx/headless/svpgdi.cxx	30 May 2008 09:30:54 -0000
+@@ -548,3 +548,7 @@
+ {
+     return false;
+ }
++
++void SvpSalGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
++{
++}
+Index: unx/headless/svpgdi.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpgdi.hxx,v
+retrieving revision 1.5
+diff -u -r1.5 svpgdi.hxx
+--- openoffice.org.orig/vcl/unx/headless/svpgdi.hxx	11 Apr 2008 09:29:03 -0000	1.5
++++ openoffice.org/vcl/unx/headless/svpgdi.hxx	30 May 2008 09:30:54 -0000
+@@ -176,6 +176,8 @@
+     virtual void			invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+ 
+     virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
++
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+ };
+ 
+ #endif
+Index: unx/headless/svppspgraphics.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svppspgraphics.cxx,v
+retrieving revision 1.5
+diff -u -r1.5 svppspgraphics.cxx
+--- openoffice.org.orig/vcl/unx/headless/svppspgraphics.cxx	11 Apr 2008 09:30:23 -0000	1.5
++++ openoffice.org/vcl/unx/headless/svppspgraphics.cxx	30 May 2008 09:30:56 -0000
+@@ -1175,32 +1175,6 @@
+     aDFA.mePitch        = ToFontPitch (rInfo.m_ePitch);
+     aDFA.mbSymbolFlag   = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
+ 
+-    switch (rInfo.m_eEmbeddedbitmap)
+-    {
+-        default:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+-            break;
+-        case psp::fcstatus::istrue:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
+-            break;
+-        case psp::fcstatus::isfalse:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
+-            break;
+-    }
+-
+-    switch (rInfo.m_eAntialias)
+-    {
+-        default:
+-            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+-            break;
+-        case psp::fcstatus::istrue:
+-            aDFA.meAntiAlias = ANTIALIAS_TRUE;
+-            break;
+-        case psp::fcstatus::isfalse:
+-            aDFA.meAntiAlias = ANTIALIAS_FALSE;
+-            break;
+-    }
+-
+     // special case for the ghostscript fonts
+     if( aDFA.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
+         aDFA.maName = aDFA.maName.Copy( 4 );
+@@ -1259,6 +1233,10 @@
+     return aDFA;
+ }
+ 
++void PspGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
++{
++}
++
+ // -----------------------------------------------------------------------
+ 
+ void PspGraphics::AnnounceFonts( ImplDevFontList* pFontList, const psp::FastPrintFontInfo& aInfo )
+Index: unx/headless/svppspgraphics.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svppspgraphics.hxx,v
+retrieving revision 1.5
+diff -u -r1.5 svppspgraphics.hxx
+--- openoffice.org.orig/vcl/unx/headless/svppspgraphics.hxx	11 Apr 2008 09:30:40 -0000	1.5
++++ openoffice.org/vcl/unx/headless/svppspgraphics.hxx	30 May 2008 09:30:56 -0000
+@@ -201,6 +201,7 @@
+ 
+     virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+     virtual bool            filterText( const String& rOrigText, String& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+ };
+ 
+ #endif // _SVP_PSPGRAPHICS_HXX
+Index: unx/inc/pspgraphics.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/pspgraphics.h,v
+retrieving revision 1.18
+diff -u -r1.18 pspgraphics.h
+--- openoffice.org.orig/vcl/unx/inc/pspgraphics.h	11 Apr 2008 09:35:48 -0000	1.18
++++ openoffice.org/vcl/unx/inc/pspgraphics.h	30 May 2008 09:30:57 -0000
+@@ -117,6 +117,7 @@
      virtual void			SetTextColor( SalColor nSalColor );
      virtual USHORT          SetFont( ImplFontSelectData*, int nFallbackLevel );
      virtual void			GetFontMetric( ImplFontMetricData* );
@@ -179,10 +474,14 @@
      virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
      virtual ImplFontCharMap* GetImplFontCharMap() const;
      virtual void			GetDevFontList( ImplDevFontList* );
-diff -ru vcl/unx/inc/salgdi.h vcl/unx/inc/salgdi.h
---- openoffice.org.orig/vcl/unx/inc/salgdi.h	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/unx/inc/salgdi.h	2006-05-05 10:41:12.000000000 +0100
-@@ -238,6 +238,7 @@
+Index: unx/inc/salgdi.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/salgdi.h,v
+retrieving revision 1.45
+diff -u -r1.45 salgdi.h
+--- openoffice.org.orig/vcl/unx/inc/salgdi.h	11 Apr 2008 09:37:25 -0000	1.45
++++ openoffice.org/vcl/unx/inc/salgdi.h	30 May 2008 09:30:58 -0000
+@@ -247,6 +247,7 @@
      virtual void			SetTextColor( SalColor nSalColor );
      virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
      virtual void			GetFontMetric( ImplFontMetricData* );
@@ -190,10 +489,14 @@
      virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
      virtual ImplFontCharMap* GetImplFontCharMap() const;
      virtual void			GetDevFontList( ImplDevFontList* );
-diff -ru vcl/unx/source/gdi/pspgraphics.cxx vcl/unx/source/gdi/pspgraphics.cxx
---- openoffice.org.orig/vcl/unx/source/gdi/pspgraphics.cxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/unx/source/gdi/pspgraphics.cxx	2006-05-05 10:28:18.000000000 +0100
-@@ -862,6 +862,10 @@
+Index: unx/source/gdi/pspgraphics.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/gdi/pspgraphics.cxx,v
+retrieving revision 1.29
+diff -u -r1.29 pspgraphics.cxx
+--- openoffice.org.orig/vcl/unx/source/gdi/pspgraphics.cxx	11 Apr 2008 09:53:14 -0000	1.29
++++ openoffice.org/vcl/unx/source/gdi/pspgraphics.cxx	30 May 2008 09:31:10 -0000
+@@ -852,6 +852,10 @@
      }
  }
  
@@ -204,7 +507,7 @@
  void PspGraphics::GetFontMetric( ImplFontMetricData *pMetric )
  {
      const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
-@@ -1230,32 +1234,6 @@
+@@ -1264,32 +1268,6 @@
      aDFA.mePitch        = ToFontPitch (rInfo.m_ePitch);
      aDFA.mbSymbolFlag   = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
  
@@ -237,13 +540,64 @@
      // special case for the ghostscript fonts
      if( aDFA.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
          aDFA.maName = aDFA.maName.Copy( 4 );
-diff -ru vcl/unx/source/gdi/salgdi3.cxx vcl/unx/source/gdi/salgdi3.cxx
---- openoffice.org.orig/vcl/unx/source/gdi/salgdi3.cxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/unx/source/gdi/salgdi3.cxx	2006-05-05 10:30:18.000000000 +0100
-@@ -1367,6 +1367,174 @@
+Index: unx/source/gdi/salgdi3.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/gdi/salgdi3.cxx,v
+retrieving revision 1.154
+diff -u -r1.154 salgdi3.cxx
+--- openoffice.org.orig/vcl/unx/source/gdi/salgdi3.cxx	11 Apr 2008 09:55:12 -0000	1.154
++++ openoffice.org/vcl/unx/source/gdi/salgdi3.cxx	30 May 2008 09:31:13 -0000
+@@ -739,6 +739,7 @@
+     void (*mp_show_glyphs)(cairo_t *, const cairo_glyph_t *, int );
+     void (*mp_set_source_rgb)(cairo_t *, double , double , double );
+     void (*mp_set_font_options)(cairo_t *, const void *);
++    void (*mp_ft_font_options_substitute)(const void*, void*);
+ 
+     bool canEmbolden() const { return false; }
+ 
+@@ -776,6 +777,8 @@
+         { (*mp_set_source_rgb)(cr, red, green, blue); }
+     void set_font_options(cairo_t *cr, const void *options)
+         { (*mp_set_font_options)(cr, options); }
++    void ft_font_options_substitute(const void *options, void *pattern)
++        { (*mp_ft_font_options_substitute)(options, pattern); }
+ };
+ 
+ static CairoWrapper* pCairoInstance = NULL;
+@@ -843,6 +846,8 @@
+         osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_source_rgb" );
+     mp_set_font_options = (void (*)(cairo_t *, const void *options ))
+         osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_font_options" );
++    mp_ft_font_options_substitute = (void (*)(const void *, void *))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_ft_font_options_substitute" );
+ 
+     if( !( 
+             mp_xlib_surface_create_with_xrender_format &&
+@@ -860,7 +865,8 @@
+             mp_set_font_matrix &&
+             mp_show_glyphs &&
+             mp_set_source_rgb &&
+-            mp_set_font_options
++            mp_set_font_options &&
++            mp_ft_font_options_substitute
+         ) )
+     {
+         osl_unloadModule( mpCairoLib );
+@@ -1629,6 +1635,187 @@
  
  // ----------------------------------------------------------------------------
  
++void cairosubcallback(void *pPattern)
++{
++    CairoWrapper &rCairo = CairoWrapper::get();
++    if (rCairo.isValid())
++    {
++        rCairo.ft_font_options_substitute(
++            Application::GetSettings().GetStyleSettings().GetCairoFontOptions(),
++            pPattern);
++    }
++}
++
 +void X11SalGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const
 +{
 +    psp::FastPrintFontInfo aInfo;
@@ -338,7 +692,8 @@
 +            break;
 +    }
 +
-+    psp::FontConfigHints aHints(psp::PrintFontManager::get().getFontConfigHints(aInfo, nSize));
++    psp::FontConfigHints aHints(psp::PrintFontManager::get().getFontConfigHints(aInfo, nSize,
++	cairosubcallback));
 +
 +    switch (aHints.m_eEmbeddedbitmap)
 +    {
@@ -408,6 +763,7 @@
 +            rFontHints.meHintStyle = HINT_FULL;
 +            break;
 +    }
++
 +}
 +
 +// ----------------------------------------------------------------------------
@@ -415,10 +771,14 @@
  void
  X11SalGraphics::GetFontMetric( ImplFontMetricData *pMetric )
  {
-diff -ru vcl/unx/source/gdi/xlfd_extd.cxx vcl/unx/source/gdi/xlfd_extd.cxx
---- openoffice.org.orig/vcl/unx/source/gdi/xlfd_extd.cxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/unx/source/gdi/xlfd_extd.cxx	2006-05-04 14:51:52.000000000 +0100
-@@ -114,9 +114,6 @@
+Index: unx/source/gdi/xlfd_extd.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/gdi/xlfd_extd.cxx,v
+retrieving revision 1.31
+diff -u -r1.31 xlfd_extd.cxx
+--- openoffice.org.orig/vcl/unx/source/gdi/xlfd_extd.cxx	11 Apr 2008 09:57:12 -0000	1.31
++++ openoffice.org/vcl/unx/source/gdi/xlfd_extd.cxx	30 May 2008 09:31:15 -0000
+@@ -105,9 +105,6 @@
      mbSubsettable  = false;
      mbEmbeddable   = false;
  
@@ -428,10 +788,14 @@
      mnQuality      = -1;
  }
  
-diff -ru vcl/win/inc/salgdi.h vcl/win/inc/salgdi.h
---- openoffice.org.orig/vcl/win/inc/salgdi.h	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/win/inc/salgdi.h	2006-05-05 10:40:44.000000000 +0100
-@@ -270,6 +270,7 @@
+Index: win/inc/salgdi.h
+===================================================================
+RCS file: /cvs/gsl/vcl/win/inc/salgdi.h,v
+retrieving revision 1.29
+diff -u -r1.29 salgdi.h
+--- openoffice.org.orig/vcl/win/inc/salgdi.h	11 Apr 2008 10:41:29 -0000	1.29
++++ openoffice.org/vcl/win/inc/salgdi.h	30 May 2008 09:31:31 -0000
+@@ -274,6 +274,7 @@
      virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
      // get the current font's etrics
      virtual void			GetFontMetric( ImplFontMetricData* );
@@ -439,10 +803,14 @@
      // get kernign pairs of the current font
      // return only PairCount if (pKernPairs == NULL)
      virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
-diff -ru vcl/win/source/gdi/salgdi3.cxx vcl/win/source/gdi/salgdi3.cxx
---- openoffice.org.orig/vcl/win/source/gdi/salgdi3.cxx	2006-05-04 08:55:40.000000000 +0100
-+++ openoffice.org/vcl/win/source/gdi/salgdi3.cxx	2006-05-05 10:40:47.000000000 +0100
-@@ -1250,6 +1250,12 @@
+Index: win/source/gdi/salgdi3.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/win/source/gdi/salgdi3.cxx,v
+retrieving revision 1.95
+diff -u -r1.95 salgdi3.cxx
+--- openoffice.org.orig/vcl/win/source/gdi/salgdi3.cxx	11 Apr 2008 10:48:39 -0000	1.95
++++ openoffice.org/vcl/win/source/gdi/salgdi3.cxx	30 May 2008 09:31:36 -0000
+@@ -1388,6 +1388,12 @@
  
  // -----------------------------------------------------------------------
  
@@ -455,10 +823,14 @@
  void WinSalGraphics::GetFontMetric( ImplFontMetricData* pMetric )
  {
      if ( aSalShlData.mbWNT )
-diff -ru psprint/inc/psprint/fontmanager.hxx psprint/inc/psprint/fontmanager.hxx
---- openoffice.org.orig/psprint/inc/psprint/fontmanager.hxx	2006-05-08 16:00:09.000000000 -0400
-+++ openoffice.org/psprint/inc/psprint/fontmanager.hxx	2006-05-08 16:01:09.000000000 -0400
-@@ -155,6 +155,33 @@
+Index: inc/psprint/fontmanager.hxx
+===================================================================
+RCS file: /cvs/gsl/psprint/inc/psprint/fontmanager.hxx,v
+retrieving revision 1.36
+diff -u -r1.36 fontmanager.hxx
+--- openoffice.org.orig/psprint/inc/psprint/fontmanager.hxx	11 Apr 2008 10:09:55 -0000	1.36
++++ openoffice.org/psprint/inc/psprint/fontmanager.hxx	18 Nov 2008 10:40:41 -0000
+@@ -142,6 +142,33 @@
  };
  }
  
@@ -492,7 +864,7 @@
  /*
   *  the difference between FastPrintFontInfo and PrintFontInfo
   *  is that the information in FastPrintFontInfo can usually
-@@ -180,8 +207,6 @@
+@@ -167,8 +194,6 @@
      weight::type            			m_eWeight;
      pitch::type             			m_ePitch;
      rtl_TextEncoding        			m_aEncoding;
@@ -501,7 +873,7 @@
  
      FastPrintFontInfo() :
              m_nID( 0 ),
-@@ -191,9 +216,7 @@
+@@ -178,9 +203,7 @@
              m_eWidth( width::Unknown ),
              m_eWeight( weight::Unknown ),
              m_ePitch( pitch::Unknown ),
@@ -512,7 +884,7 @@
      {}
  };
  
-@@ -308,9 +331,6 @@
+@@ -297,9 +320,6 @@
          bool										m_bHaveVerticalSubstitutedGlyphs;
          bool                                        m_bUserOverride;
  
@@ -522,18 +894,22 @@
          std::map< sal_Unicode, sal_Int32 >			m_aEncodingVector;
          std::map< sal_Unicode, rtl::OString >		m_aNonEncoded;
  
-@@ -726,6 +746,7 @@
+@@ -742,6 +762,7 @@
      false else
       */
      bool matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale );
-+    FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize);
++    FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize, void (*subcallback)(void *));
  
-     String Substitute(const std::vector<String> &rNames, const std::vector<sal_Unicode> &rGlyphs, 
-         const ByteString &rLangAttrib, italic::type eItalic, weight::type eWeight, 
-diff -ru psprint/source/fontmanager/fontcache.cxx psprint/source/fontmanager/fontcache.cxx
---- openoffice.org.orig/psprint/source/fontmanager/fontcache.cxx	2006-05-08 16:00:10.000000000 -0400
-+++ openoffice.org/psprint/source/fontmanager/fontcache.cxx	2006-05-08 16:00:32.000000000 -0400
-@@ -220,9 +220,9 @@
+     rtl::OUString Substitute( const rtl::OUString& rFontName, rtl::OUString& rMissingCodes, 
+         const rtl::OString& rLangAttrib, italic::type eItalic, weight::type eWeight, 
+Index: source/fontmanager/fontcache.cxx
+===================================================================
+RCS file: /cvs/gsl/psprint/source/fontmanager/fontcache.cxx,v
+retrieving revision 1.26
+diff -u -r1.26 fontcache.cxx
+--- openoffice.org.orig/psprint/source/fontmanager/fontcache.cxx	11 Apr 2008 10:12:37 -0000	1.26
++++ openoffiec.org/psprint/source/fontmanager/fontcache.cxx	18 Nov 2008 10:40:41 -0000
+@@ -214,9 +214,9 @@
                  aLine.Append( ';' );
                  aLine.Append( (*it)->m_bUserOverride ? "1" : "0" );
                  aLine.Append( ';' );
@@ -545,7 +921,7 @@
  
                  switch( (*it)->m_eType )
                  {
-@@ -432,9 +432,6 @@
+@@ -426,9 +426,6 @@
                                      = atoi( pLine + nTokenPos[14] );
                  pFont->m_bUserOverride
                                      = (atoi( pLine + nTokenPos[15] ) != 0);
@@ -555,7 +931,7 @@
                  int nStyleTokenNr = 18;
                  switch( eType )
                  {
-@@ -564,8 +561,6 @@
+@@ -560,8 +557,6 @@
      pTo->m_nYMax			= pFrom->m_nYMax;
      pTo->m_bHaveVerticalSubstitutedGlyphs = pFrom->m_bHaveVerticalSubstitutedGlyphs;
      pTo->m_bUserOverride    = pFrom->m_bUserOverride;
@@ -564,7 +940,7 @@
  }
  
  /*
-@@ -627,9 +622,7 @@
+@@ -623,9 +618,7 @@
          pRight->m_nXMax				!= pLeft->m_nXMax			||
          pRight->m_nYMax				!= pLeft->m_nYMax			||
          pRight->m_bHaveVerticalSubstitutedGlyphs != pLeft->m_bHaveVerticalSubstitutedGlyphs ||
@@ -575,10 +951,14 @@
          )
          return false;
      std::list< int >::const_iterator lit, rit;
-diff -ru psprint/source/fontmanager/fontconfig.cxx psprint/source/fontmanager/fontconfig.cxx
---- openoffice.org.orig/psprint/source/fontmanager/fontconfig.cxx	2006-05-08 16:00:10.000000000 -0400
-+++ openoffice.org/psprint/source/fontmanager/fontconfig.cxx	2006-05-08 16:03:34.000000000 -0400
-@@ -136,6 +136,7 @@
+Index: source/fontmanager/fontconfig.cxx
+===================================================================
+RCS file: /cvs/gsl/psprint/source/fontmanager/fontconfig.cxx,v
+retrieving revision 1.30.20.1
+diff -u -r1.30.20.1 fontconfig.cxx
+--- openoffice.org.orig/psprint/source/fontmanager/fontconfig.cxx	10 Sep 2008 13:53:12 -0000	1.30.20.1
++++ openoffice.org/psprint/source/fontmanager/fontconfig.cxx	18 Nov 2008 10:40:42 -0000
+@@ -122,6 +122,7 @@
      FcBool			(*m_pFcConfigAppFontAddDir)(FcConfig*, const FcChar8*);
      FcBool			(*m_pFcConfigSubstitute)(FcConfig*,FcPattern*,FcMatchKind);
      FcBool			(*m_pFcPatternAddInteger)(FcPattern*,const char*,int);
@@ -586,16 +966,7 @@
      FcBool                    (*m_pFcPatternAddBool)(FcPattern*,const char*,FcBool);
      FcBool                    (*m_pFcPatternAddCharSet)(FcPattern*,const char*,const FcCharSet*);
      FcBool			(*m_pFcPatternAddString)(FcPattern*,const char*,const FcChar8*);
-@@ -183,7 +184,7 @@
- 
-     void FcPatternDestroy( FcPattern* pPattern )
-     { m_pFcPatternDestroy( pPattern ); }
--    
-+
-     FcFontSet* FcFontList( FcConfig* pConfig, FcPattern* pPattern, FcObjectSet* pSet )
-     { return m_pFcFontList( pConfig, pPattern, pSet ); }
- 
-@@ -240,6 +241,8 @@
+@@ -226,6 +227,8 @@
      { return m_pFcConfigSubstitute( pConfig, pPattern, eKind ); }
      FcBool FcPatternAddInteger( FcPattern* pPattern, const char* pObject, int nValue )
      { return m_pFcPatternAddInteger( pPattern, pObject, nValue ); }
@@ -604,7 +975,7 @@
      FcBool FcPatternAddString( FcPattern* pPattern, const char* pObject, const FcChar8* pString )
      { return m_pFcPatternAddString( pPattern, pObject, pString ); }
      FcBool FcPatternAddBool( FcPattern* pPattern, const char* pObject, bool nValue )
-@@ -251,7 +254,9 @@
+@@ -237,7 +240,9 @@
      { return m_pFcFreeTypeCharIndex ? m_pFcFreeTypeCharIndex( face, ucs4 ) : 0; }
  
  public: // TODO: cleanup
@@ -615,7 +986,7 @@
  };
  
  oslGenericFunction FontCfgWrapper::loadSymbol( const char* pSymbol )
-@@ -341,6 +346,8 @@
+@@ -327,6 +332,8 @@
          loadSymbol( "FcConfigSubstitute" );
      m_pFcPatternAddInteger = (FcBool(*)(FcPattern*,const char*,int))
          loadSymbol( "FcPatternAddInteger" );
@@ -624,7 +995,7 @@
      m_pFcPatternAddBool = (FcBool(*)(FcPattern*,const char*,FcBool))
          loadSymbol( "FcPatternAddBool" );
      m_pFcPatternAddCharSet = (FcBool(*)(FcPattern*,const char*,const FcCharSet *))
-@@ -378,6 +385,7 @@
+@@ -364,6 +371,7 @@
              m_pFcDefaultSubstitute			&&
              m_pFcConfigSubstitute			&&
              m_pFcPatternAddInteger			&&
@@ -632,7 +1003,7 @@
              m_pFcPatternAddCharSet			&&
              m_pFcPatternAddBool 			&&
              m_pFcPatternAddString
-@@ -512,54 +520,53 @@
+@@ -498,54 +506,53 @@
  
          return candidate;
      }
@@ -724,7 +1095,7 @@
  /*
   * PrintFontManager::initFontconfig
   */
-@@ -594,18 +601,16 @@
+@@ -580,18 +587,16 @@
              int weight = 0;
              int spacing = 0;
              int nCollectionEntry = -1;
@@ -745,7 +1116,7 @@
              
              if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch )
                  continue;
-@@ -745,15 +750,6 @@
+@@ -731,15 +736,6 @@
                  {
                      pUpdate->m_aStyleName = OStringToOUString( OString( (sal_Char*)style ), RTL_TEXTENCODING_UTF8 );
                  }
@@ -761,7 +1132,7 @@
                  
                  // update font cache
                  m_pFontCache->updateFontCacheEntry( pUpdate, false );
-@@ -957,8 +953,8 @@
+@@ -944,8 +940,8 @@
              if( eFileRes == FcResultMatch )
              {
                  OString sFamily((sal_Char*)family);
@@ -772,11 +1143,12 @@
                      sFamily = aI->second;
                  aName = rtl::OStringToOUString( sFamily, RTL_TEXTENCODING_UTF8 );
              }
-@@ -989,6 +985,106 @@
+@@ -976,6 +972,98 @@
      return aName;
  }
  
-+FontConfigHints PrintFontManager::getFontConfigHints( const FastPrintFontInfo& rInfo, int nSize)
++FontConfigHints PrintFontManager::getFontConfigHints( 
++    const FastPrintFontInfo& rInfo, int nSize, void (*subcallback)(void *) )
 +{
 +    FontConfigHints aHints;
 +#ifdef ENABLE_FONTCONFIG
@@ -784,7 +1156,7 @@
 +    if( ! rWrapper.isValid() )
 +        return aHints;
 +
-+    FcConfig* pConfig = rWrapper.getDefConfig();
++    FcConfig* pConfig = rWrapper.FcConfigGetCurrent();
 +    FcPattern* pPattern = rWrapper.FcPatternCreate();
 +
 +    OString sFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
@@ -796,82 +1168,73 @@
 +        rWrapper.FcPatternAddString( pPattern, FC_FAMILY, (FcChar8*)sFamily.getStr() );
 +
 +    addtopattern(rWrapper, pPattern, rInfo.m_eItalic, rInfo.m_eWeight, rInfo.m_eWidth, rInfo.m_ePitch);
-+
 +    rWrapper.FcPatternAddDouble( pPattern, FC_PIXEL_SIZE, nSize);
 +
-+    OString aFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
-+
 +    FcBool embitmap = true, antialias = true, autohint = true, hinting = true;
-+    int hintstyle = FC_HINT_FULL, rgba = FC_RGBA_UNKNOWN;
-+
-+    rWrapper.FcConfigSubstitute( pConfig, pPattern, FcMatchFont );
++    int hintstyle = FC_HINT_FULL;
 +
++    rWrapper.FcConfigSubstitute( pConfig, pPattern, FcMatchPattern );
++    if (subcallback) subcallback(pPattern);
 +    rWrapper.FcDefaultSubstitute( pPattern );
-+    FcResult eEmbeddedBitmap = rWrapper.FcPatternGetBool( pPattern, FC_EMBEDDED_BITMAP, 0, &embitmap );
-+    FcResult eAntialias = rWrapper.FcPatternGetBool( pPattern, FC_ANTIALIAS, 0, &antialias );
-+    FcResult eAutoHint = rWrapper.FcPatternGetBool( pPattern, FC_AUTOHINT, 0, &autohint );
-+    FcResult eSubPixel = rWrapper.FcPatternGetInteger( pPattern, FC_RGBA, 0, &rgba);
-+    FcResult eHinting = rWrapper.FcPatternGetBool( pPattern, FC_HINTING, 0, &hinting );
-+
-+    FcResult eHintStyle = rWrapper.FcPatternGetInteger( pPattern, FC_HINT_STYLE, 0, &hintstyle );
-+    rWrapper.FcPatternDestroy(pPattern);
-+ 
-+    if( eEmbeddedBitmap == FcResultMatch )
-+        aHints.m_eEmbeddedbitmap = embitmap ? fcstatus::istrue : fcstatus::isfalse;
-+    if( eAntialias == FcResultMatch )
-+        aHints.m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
-+    if( eAutoHint == FcResultMatch )
-+        aHints.m_eAutoHint = autohint ? fcstatus::istrue : fcstatus::isfalse;
-+    if( eHinting == FcResultMatch )
-+        aHints.m_eHinting = hinting ? fcstatus::istrue : fcstatus::isfalse;
-+    if (eHintStyle != FcResultMatch)
-+        aHints.m_eHintStyle = fchint::Full;
-+    else
++
++    FcResult eResult = FcResultNoMatch;
++    FcFontSet *pFontSet = rWrapper.getFontSet();
++    FcPattern* pResult = rWrapper.FcFontSetMatch( pConfig, &pFontSet, 1, pPattern, &eResult );
++    if( pResult )
 +    {
-+        switch (hintstyle)
++        FcFontSet* pSet = rWrapper.FcFontSetCreate();
++        rWrapper.FcFontSetAdd( pSet, pResult );
++        if( pSet->nfont > 0 )
 +        {
-+            case FC_HINT_NONE:
-+                aHints.m_eHintStyle = fchint::Nohint;
-+                break;
-+            case FC_HINT_SLIGHT:
-+                aHints.m_eHintStyle = fchint::Slight;
-+                break;
-+            case FC_HINT_MEDIUM:
-+                aHints.m_eHintStyle = fchint::Medium;
-+                break;
-+            case FC_HINT_FULL:
-+            default:
++            FcResult eEmbeddedBitmap = rWrapper.FcPatternGetBool(pSet->fonts[0],
++                FC_EMBEDDED_BITMAP, 0, &embitmap);
++            FcResult eAntialias = rWrapper.FcPatternGetBool(pSet->fonts[0],
++                FC_ANTIALIAS, 0, &antialias);
++            FcResult eAutoHint = rWrapper.FcPatternGetBool(pSet->fonts[0], 
++                FC_AUTOHINT, 0, &autohint);
++            FcResult eHinting = rWrapper.FcPatternGetBool(pSet->fonts[0], 
++                FC_HINTING, 0, &hinting);
++            FcResult eHintStyle = rWrapper.FcPatternGetInteger(pSet->fonts[0],
++                FC_HINT_STYLE, 0, &hintstyle);
++         
++            if( eEmbeddedBitmap == FcResultMatch )
++                aHints.m_eEmbeddedbitmap = embitmap ? fcstatus::istrue : fcstatus::isfalse;
++            if( eAntialias == FcResultMatch )
++                aHints.m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
++            if( eAutoHint == FcResultMatch )
++                aHints.m_eAutoHint = autohint ? fcstatus::istrue : fcstatus::isfalse;
++            if( eHinting == FcResultMatch )
++                aHints.m_eHinting = hinting ? fcstatus::istrue : fcstatus::isfalse;
++            if (eHintStyle != FcResultMatch)
 +                aHints.m_eHintStyle = fchint::Full;
-+                break;
-+        }
-+    }
-+    if (eSubPixel != FcResultMatch)
-+        aHints.m_eSubPixel = fcsubpixel::Unknown;
-+    else 
-+    {
-+        switch (rgba)
-+        {
-+	    default:
-+	    case FC_RGBA_UNKNOWN:
-+                aHints.m_eSubPixel = fcsubpixel::Unknown;
-+	        break;
-+	    case FC_RGBA_RGB:
-+                aHints.m_eSubPixel = fcsubpixel::RGB;
-+	        break;
-+	    case FC_RGBA_BGR:
-+                aHints.m_eSubPixel = fcsubpixel::BGR;
-+	        break;
-+	    case FC_RGBA_VRGB:
-+                aHints.m_eSubPixel = fcsubpixel::VRGB;
-+	        break;
-+	    case FC_RGBA_VBGR:
-+                aHints.m_eSubPixel = fcsubpixel::VBGR;
-+	        break;
-+            case FC_RGBA_NONE:
-+                aHints.m_eSubPixel = fcsubpixel::NONE;
-+	        break;
++            else
++            {
++                switch (hintstyle)
++                {
++                    case FC_HINT_NONE:
++                        aHints.m_eHintStyle = fchint::Nohint;
++                        break;
++                    case FC_HINT_SLIGHT:
++                        aHints.m_eHintStyle = fchint::Slight;
++                        break;
++                    case FC_HINT_MEDIUM:
++                        aHints.m_eHintStyle = fchint::Medium;
++                        break;
++                    case FC_HINT_FULL:
++                    default:
++                        aHints.m_eHintStyle = fchint::Full;
++                        break;
++                }
++            }
 +        }
++        // info: destroying the pSet destroys pResult implicitly
++        // since pResult was "added" to pSet
++        rWrapper.FcFontSetDestroy( pSet );
 +    }
++
++    // cleanup
++    rWrapper.FcPatternDestroy( pPattern );
++
 +#endif
 +    return aHints;
 +}
@@ -879,24 +1242,14 @@
  bool PrintFontManager::matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale )
  {
      FontCfgWrapper& rWrapper = FontCfgWrapper::get();
-@@ -1014,9 +1110,10 @@
-     if( aLangAttrib.getLength() )
-         rWrapper.FcPatternAddString( pPattern, FC_LANG, (FcChar8*)aLangAttrib.getStr() );
- 
--    OString aFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
--    if( aFamily.getLength() )
--        rWrapper.FcPatternAddString( pPattern, FC_FAMILY, (FcChar8*)aFamily.getStr() );
-+    OString sFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
-+
-+    if( sFamily.getLength() )
-+        rWrapper.FcPatternAddString( pPattern, FC_FAMILY, (FcChar8*)sFamily.getStr() );
- 
-     addtopattern(rWrapper, pPattern, rInfo.m_eItalic, rInfo.m_eWeight, rInfo.m_eWidth, rInfo.m_ePitch);
- 
-diff -ru psprint/source/fontmanager/fontmanager.cxx psprint/source/fontmanager/fontmanager.cxx
---- openoffice.org.orig/psprint/source/fontmanager/fontmanager.cxx	2006-05-08 16:00:10.000000000 -0400
-+++ openoffice.org/psprint/source/fontmanager/fontmanager.cxx	2006-05-08 16:00:32.000000000 -0400
-@@ -391,9 +391,7 @@
+Index: source/fontmanager/fontmanager.cxx
+===================================================================
+RCS file: /cvs/gsl/psprint/source/fontmanager/fontmanager.cxx,v
+retrieving revision 1.81.18.1
+diff -u -r1.81.18.1 fontmanager.cxx
+--- openoffice.org.orig/psprint/source/fontmanager/fontmanager.cxx	10 Sep 2008 13:53:28 -0000	1.81.18.1
++++ openoffice.org/psprint/source/fontmanager/fontmanager.cxx	18 Nov 2008 10:40:42 -0000
+@@ -355,9 +355,7 @@
          m_nXMax( 0 ),
          m_nYMax( 0 ),
          m_bHaveVerticalSubstitutedGlyphs( false ),
@@ -907,7 +1260,7 @@
  {
  }
  
-@@ -2761,8 +2759,6 @@
+@@ -2732,8 +2730,6 @@
      rInfo.m_eWeight         = pFont->m_eWeight;
      rInfo.m_ePitch          = pFont->m_ePitch;
      rInfo.m_aEncoding       = pFont->m_aEncoding;
@@ -916,7 +1269,7 @@
      rInfo.m_aAliases.clear();
      for( ::std::list< int >::iterator it = pFont->m_aAliases.begin(); it != pFont->m_aAliases.end(); ++it )
          rInfo.m_aAliases.push_back( m_pAtoms->getString( ATOM_FAMILYNAME, *it ) );
-@@ -4006,8 +4002,6 @@
+@@ -3977,8 +3973,6 @@
          BuiltinFont* pFont = new BuiltinFont();
          pFont->m_nDirectory = 0;
          pFont->m_bUserOverride = false;
@@ -925,405 +1278,3 @@
          pFont->m_pMetrics = new PrintFontMetrics;
          memset( pFont->m_pMetrics->m_aPages, 0xff, sizeof( pFont->m_pMetrics->m_aPages ) );
          pFont->m_pMetrics->m_bKernPairsQueried = true;
-diff -ru vcl/inc/impfont.hxx vcl/inc/impfont.hxx
---- openoffice.org.orig/vcl/inc/vcl/impfont.hxx	2006-05-22 13:59:55.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/impfont.hxx	2006-05-23 12:26:20.000000000 +0100
-@@ -167,24 +167,29 @@
-     FontAutoHint       meAutoHint;       // whether the font should be autohinted
-     FontHinting        meHinting;        // whether the font should be hinted
-     FontHintStyle      meHintStyle;      // type of font hinting to be used
-+    FontSubPixel       meSubPixel;       // type of subpixel font hinting to be used
- public:
-     ImplFontHints() :
-         meEmbeddedBitmap(EMBEDDEDBITMAP_DONTKNOW), 
-         meAntiAlias(ANTIALIAS_DONTKNOW), 
-         meAutoHint(AUTOHINT_DONTKNOW), 
-         meHinting(HINTING_DONTKNOW), 
--        meHintStyle(HINT_FULL)
-+        meHintStyle(HINT_FULL),
-+        meSubPixel(SUBPIXEL_UNKNOWN)
-     {}
-     ImplFontHints(FontEmbeddedBitmap eEmbeddedBitmap, FontAntiAlias eAntiAlias, 
--        FontAutoHint eAutoHint, FontHinting eHinting, FontHintStyle eHintStyle) :
-+        FontAutoHint eAutoHint, FontHinting eHinting, FontHintStyle eHintStyle,
-+	FontSubPixel eSubPixel) :
-         meEmbeddedBitmap(eEmbeddedBitmap), 
-         meAntiAlias(eAntiAlias), 
-         meAutoHint(eAutoHint), 
-         meHinting(eHinting), 
--        meHintStyle(eHintStyle)
-+        meHintStyle(eHintStyle),
-+        meSubPixel(eSubPixel)
-     {}
-     FontAutoHint GetUseAutoHint() const { return meAutoHint; }
-     FontHintStyle GetHintStyle() const { return meHintStyle; }
-+    FontSubPixel GetSubPixel() const { return meSubPixel; }
-     bool DontUseEmbeddedBitmaps() const { return meEmbeddedBitmap == EMBEDDEDBITMAP_FALSE; }
-     bool DontUseAntiAlias() const { return meAntiAlias == ANTIALIAS_FALSE; }
-     bool DontUseHinting() const { return (meHinting == HINTING_FALSE) || (GetHintStyle() == HINT_NONE); }
-diff -ru vcl/inc/vclenum.hxx vcl/inc/vclenum.hxx
---- openoffice.org.orig/vcl/inc/vcl/vclenum.hxx	2006-05-22 13:59:55.000000000 +0100
-+++ openoffice.org/vcl/inc/vcl/vclenum.hxx	2006-05-22 14:14:49.000000000 +0100
-@@ -310,6 +310,14 @@
- 
- #endif
- 
-+#ifndef ENUM_FONTSUBPIXEL_DECLARED
-+#define ENUM_FONTSUBPIXEL_DECLARED
-+
-+enum FontSubPixel { SUBPIXEL_UNKNOWN, SUBPIXEL_RGB, SUBPIXEL_BGR, SUBPIXEL_VRGB, SUBPIXEL_VBGR, SUBPIXEL_NONE};
-+
-+#endif
-+
-+
- // ------------------------------------------------------------
- 
- #ifndef ENUM_KEYFUNCTYPE_DECLARED
-Index: source/glyphs/gcach_ftyp.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
-retrieving revision 1.139.12.2
-diff -u -r1.139.12.2 gcach_ftyp.cxx
---- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.cxx	24 Jan 2007 15:08:39 -0000	1.139.12.2
-+++ openoffice.org/vcl/source/glyphs/gcach_ftyp.cxx	13 Apr 2007 11:33:47 -0000
-@@ -44,6 +44,7 @@
- #include <vcl/impfont.hxx>
- #include <vcl/bitmap.hxx>
- #include <vcl/bmpacc.hxx>
-+#include <vcl/virdev.hxx>
- 
- #include <tools/poly.hxx>
- #include <basegfx/matrix/b2dhommatrix.hxx>
-@@ -616,9 +617,6 @@
-             aDFA.mbSubsettable= false;
-             aDFA.mbEmbeddable = false;
- 
--            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
--            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
--
-             FT_Done_Face( aFaceFT );
-             AddFontFile( aCFileName, nFaceNum, ++mnNextFontId, aDFA, NULL );
-             ++nCount;
-@@ -698,6 +696,7 @@
- :   ServerFont( rFSD ),
-     mnPrioEmbedded(nDefaultPrioEmbedded),
-     mnPrioAntiAlias(nDefaultPrioAntiAlias),
-+    mnPrioAutoHint(nDefaultPrioAutoHint),
-     mpFontInfo( pFI ),
-     maFaceFT( NULL ),
-     maSizeFT( NULL ),
-@@ -830,42 +829,84 @@
- 
-     mbArtItalic = (rFSD.meItalic != ITALIC_NONE && pFI->GetFontAttributes().GetSlant() == ITALIC_NONE);
-     mbArtBold = (rFSD.meWeight > WEIGHT_MEDIUM && pFI->GetFontAttributes().GetWeight() <= WEIGHT_MEDIUM);
-+    mbUseGamma = false;
-+    if (mbArtBold)
-+    {
-+	    //static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
-+	    //static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
-+	    //static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
-+	    //static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
-+	    //static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
-+	    //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
-+	    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
-+	    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
-+	    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
-+		&& rFSD.mnHeight < 20)
-+		mbUseGamma = true;
-+    }
-+
-+    ImplFontHints aHints;
-+    VirtualDevice vdev( 1 );
-+    vdev.ImplGetFontHints( pFI->GetFontAttributes(), mnWidth, aHints );
-+
-+    FontAutoHint eHint = aHints.GetUseAutoHint();
-+    if (eHint == AUTOHINT_DONTKNOW)
-+        eHint = mbUseGamma ? AUTOHINT_TRUE : AUTOHINT_FALSE;
- 
--    //static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
--    //static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
--    //static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
--    //static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
--    //static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
--    //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
--    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
--    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
--    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
--        && rFSD.mnHeight < 20)
--        mbUseGamma = true;
--    else
--        mbUseGamma = false;
--
--    if (mbUseGamma)
-+    if (eHint == AUTOHINT_TRUE)
-         mnLoadFlags |= FT_LOAD_FORCE_AUTOHINT;
- 
-     if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
-         mnLoadFlags |= FT_LOAD_NO_HINTING;
-     mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
- 
--    if (mpFontInfo->DontUseAntiAlias())
--        mnPrioAntiAlias = 0;
--    if (mpFontInfo->DontUseEmbeddedBitmaps())
--        mnPrioEmbedded = 0;
-+    if (aHints.DontUseAntiAlias())
-+      mnPrioAntiAlias = 0;
-+    if (aHints.DontUseEmbeddedBitmaps())
-+      mnPrioEmbedded = 0;
-+    if (aHints.DontUseHinting())
-+      mnPrioAutoHint = 0;
- 
- #if (FTVERSION >= 2005) || defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
--    if( nDefaultPrioAutoHint <= 0 )
-+    if( mnPrioAutoHint <= 0 )
- #endif
-         mnLoadFlags |= FT_LOAD_NO_HINTING;
- 
--#ifdef FT_LOAD_TARGET_LIGHT
--    // enable "light hinting" if available
-+#if defined(FT_LOAD_TARGET_LIGHT) && defined(FT_LOAD_TARGET_NORMAL)
-     if( !(mnLoadFlags & FT_LOAD_NO_HINTING) && (nFTVERSION >= 2103))
--        mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
-+    {
-+       mnLoadFlags |= FT_LOAD_TARGET_NORMAL;
-+       switch (aHints.GetHintStyle())
-+       {
-+           case HINT_NONE:
-+                mnLoadFlags |= FT_LOAD_NO_HINTING;
-+                break;
-+           case HINT_SLIGHT:
-+                mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
-+                break;
-+           case HINT_MEDIUM:
-+                break;
-+           case HINT_FULL:
-+           default:
-+    		switch (aHints.GetSubPixel())
-+		{
-+		        case SUBPIXEL_NONE:
-+		            break;
-+		        default:
-+		        case SUBPIXEL_UNKNOWN:
-+		        case SUBPIXEL_RGB:
-+		        case SUBPIXEL_BGR:
-+		            mnLoadFlags |= FT_LOAD_TARGET_LCD;
-+		            break;
-+		        case SUBPIXEL_VRGB:
-+		        case SUBPIXEL_VBGR:
-+		            mnLoadFlags |= FT_LOAD_TARGET_LCD_V;
-+		            break;
-+		}
-+                break;
-+       }
-+    }
-+
- #endif
- 
-     if( ((mnCos != 0) && (mnSin != 0)) || (mnPrioEmbedded <= 0) )
-@@ -1197,13 +1238,15 @@
-         }
-     }
- 
--#if !defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
-+#if 0
-     // #95556# autohinting not yet optimized for non-western glyph styles
-     if( !(mnLoadFlags & (FT_LOAD_NO_HINTING | FT_LOAD_FORCE_AUTOHINT) )
-     &&  ( (aChar >= 0x0600 && aChar < 0x1E00)   // south-east asian + arabic
-         ||(aChar >= 0x2900 && aChar < 0xD800)   // CJKV
-         ||(aChar >= 0xF800) ) )                 // presentation + symbols
-+    {
-         nGlyphFlags |= GF_UNHINTED;
-+    }
- #endif
- 
-     if( nGlyphIndex != 0 )
-@@ -1334,11 +1377,11 @@
- #if (FTVERSION >= 2002)
-     // for 0/90/180/270 degree fonts enable autohinting even if not advisable
-     // non-hinted and non-antialiased bitmaps just look too ugly
--    if( (mnCos==0 || mnSin==0) && (nDefaultPrioAutoHint > 0) )
-+    if( (mnCos==0 || mnSin==0) && (mnPrioAutoHint > 0) )
-         nLoadFlags &= ~FT_LOAD_NO_HINTING;
- #endif
- 
--    if( mnPrioEmbedded <= nDefaultPrioAutoHint )
-+    if( mnPrioEmbedded <= mnPrioAutoHint )
-         nLoadFlags |= FT_LOAD_NO_BITMAP;
- 
-     FT_Error rc = -1;
-@@ -1489,7 +1532,7 @@
-     // autohinting in FT<=2.0.4 makes antialiased glyphs look worse
-     nLoadFlags |= FT_LOAD_NO_HINTING;
- #else
--    if( (nGlyphFlags & GF_UNHINTED) || (nDefaultPrioAutoHint < mnPrioAntiAlias) )
-+    if( (nGlyphFlags & GF_UNHINTED) || (mnPrioAutoHint < mnPrioAntiAlias) )
-         nLoadFlags |= FT_LOAD_NO_HINTING;
- #endif
- 
-diff -ru vcl/unx/source/gdi/salgdi3.cxx vcl/unx/source/gdi/salgdi3.cxx
---- openoffice.org.orig/vcl/unx/source/gdi/salgdi3.cxx	2006-05-22 13:59:52.000000000 +0100
-+++ openoffice.org/vcl/unx/source/gdi/salgdi3.cxx	2006-05-23 12:29:33.000000000 +0100
-@@ -1531,6 +1531,29 @@
-             rFontHints.meHintStyle = HINT_FULL;
-             break;
-     }
-+
-+    switch (aHints.m_eSubPixel)
-+    {
-+        default:
-+        case psp::fcsubpixel::Unknown:
-+            rFontHints.meSubPixel = SUBPIXEL_UNKNOWN;
-+            break;
-+        case psp::fcsubpixel::RGB:
-+            rFontHints.meSubPixel = SUBPIXEL_RGB;
-+            break;
-+        case psp::fcsubpixel::BGR:
-+            rFontHints.meSubPixel = SUBPIXEL_BGR;
-+            break;
-+        case psp::fcsubpixel::VRGB:
-+            rFontHints.meSubPixel = SUBPIXEL_VRGB;
-+            break;
-+        case psp::fcsubpixel::VBGR:
-+            rFontHints.meSubPixel = SUBPIXEL_VBGR;
-+            break;
-+        case psp::fcsubpixel::NONE:
-+            rFontHints.meSubPixel = SUBPIXEL_NONE;
-+            break;
-+    }
- }
- 
- // ----------------------------------------------------------------------------
-diff -ru psprint/inc/psprint/fontmanager.hxx psprint/inc/psprint/fontmanager.hxx
---- openoffice.org.orig/psprint/inc/psprint/fontmanager.hxx	2006-05-22 13:59:50.000000000 +0100
-+++ openoffice.org/psprint/inc/psprint/fontmanager.hxx	2006-05-22 15:28:40.000000000 +0100
-@@ -165,6 +165,19 @@
- };
- }
- 
-+namespace fcsubpixel
-+{
-+enum type {
-+    Unknown = 0,
-+    RGB = 1,
-+    BGR = 2,
-+    VRGB = 3,
-+    VBGR = 4,
-+    NONE = 5
-+};
-+}
-+
-+
- struct FontConfigHints
- {
-     fcstatus::type m_eEmbeddedbitmap;
-@@ -172,13 +185,15 @@
-     fcstatus::type m_eAutoHint;
-     fcstatus::type m_eHinting;
-     fchint::type m_eHintStyle;
-+    fcsubpixel::type m_eSubPixel;
- 
-     FontConfigHints() :
-         m_eEmbeddedbitmap( fcstatus::isunset ),
-         m_eAntialias( fcstatus::isunset ),
-         m_eAutoHint( fcstatus::isunset ),
-         m_eHinting( fcstatus::isunset ),
--        m_eHintStyle( fchint::Full )
-+        m_eHintStyle( fchint::Medium ),
-+        m_eSubPixel( fcsubpixel::Unknown )
-         {}
- };
- 
-Index: svppspgraphics.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/headless/svppspgraphics.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 svppspgraphics.cxx
---- openoffice.org.orig/vcl/unx/headless/svppspgraphics.cxx	24 Jul 2007 10:28:29 -0000	1.2
-+++ openoffice.org/vcl/unx/headless/svppspgraphics.cxx	15 Aug 2007 11:59:04 -0000
-@@ -1175,32 +1175,6 @@
-     aDFA.mePitch        = ToFontPitch (rInfo.m_ePitch);
-     aDFA.mbSymbolFlag   = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
- 
--    switch (rInfo.m_eEmbeddedbitmap)
--    {
--        default:
--            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
--            break;
--        case psp::fcstatus::istrue:
--            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
--            break;
--        case psp::fcstatus::isfalse:
--            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
--            break;
--    }
--
--    switch (rInfo.m_eAntialias)
--    {
--        default:
--            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
--            break;
--        case psp::fcstatus::istrue:
--            aDFA.meAntiAlias = ANTIALIAS_TRUE;
--            break;
--        case psp::fcstatus::isfalse:
--            aDFA.meAntiAlias = ANTIALIAS_FALSE;
--            break;
--    }
--
-     // special case for the ghostscript fonts
-     if( aDFA.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
-         aDFA.maName = aDFA.maName.Copy( 4 );
-@@ -1386,3 +1360,7 @@
-     return bRet && m_bSwallowFaxNo;
- }
- 
-+void PspGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
-+{
-+}
-+
-Index: svppspgraphics.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/headless/svppspgraphics.hxx,v
-retrieving revision 1.2
-diff -u -r1.2 svppspgraphics.hxx
---- openoffice.org.orig/vcl/unx/headless/svppspgraphics.hxx	24 Jul 2007 10:28:40 -0000	1.2
-+++ openoffice.org/vcl/unx/headless/svppspgraphics.hxx	15 Aug 2007 12:02:57 -0000
-@@ -201,6 +201,7 @@
- 
-     virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
-     virtual bool            filterText( const String& rOrigText, String& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
-+    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
- };
- 
- #endif // _SVP_PSPGRAPHICS_HXX
-Index: svpgdi.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/headless/svpgdi.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 svpgdi.cxx
---- openoffice.org.orig/vcl/unx/headless/svpgdi.cxx	24 Jul 2007 10:27:28 -0000	1.2
-+++ openoffice.org/vcl/unx/headless/svpgdi.cxx	15 Aug 2007 12:06:47 -0000
-@@ -535,3 +535,7 @@
- {
-     return FALSE;
- }
-+
-+void SvpSalGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
-+{
-+}
-Index: svpgdi.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/headless/svpgdi.hxx,v
-retrieving revision 1.2
-diff -u -r1.2 svpgdi.hxx
---- openoffice.org.orig/vcl/unx/headless/svpgdi.hxx	24 Jul 2007 10:27:38 -0000	1.2
-+++ openoffice.org/vcl/unx/headless/svpgdi.hxx	15 Aug 2007 12:07:36 -0000
-@@ -176,6 +176,8 @@
-     virtual void			invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
- 
-     virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
-+
-+    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
- };
- 
- #endif

openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch:

Index: openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/F-9/openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch	6 Jun 2008 08:08:11 -0000	1.2
+++ openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch	19 Nov 2008 12:08:37 -0000	1.3
@@ -1,8 +1,8 @@
 diff -ru psprint/inc/psprint/fontmanager.hxx psprint/inc/psprint/fontmanager.hxx
 --- openoffice.org.orig/psprint/inc/psprint/fontmanager.hxx	2008-05-26 15:48:28.000000000 +0100
 +++ openoffice.org/psprint/inc/psprint/fontmanager.hxx	2008-05-26 15:50:13.000000000 +0100
-@@ -789,8 +789,8 @@
-     FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize);
+@@ -765,8 +765,8 @@
+     FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize, void (*subcallback)(void *));
  
      rtl::OUString Substitute( const rtl::OUString& rFontName, rtl::OUString& rMissingCodes, 
 -        const rtl::OString& rLangAttrib, italic::type eItalic, weight::type eWeight, 


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/F-9/openoffice.org.spec,v
retrieving revision 1.1510
retrieving revision 1.1511
diff -u -r1.1510 -r1.1511
--- openoffice.org.spec	29 Oct 2008 09:38:17 -0000	1.1510
+++ openoffice.org.spec	19 Nov 2008 12:08:37 -0000	1.1511
@@ -1,6 +1,6 @@
 %define oootag OOH680
 %define ooomilestone 18
-%define rh_rpm_release 1
+%define rh_rpm_release 2
 
 # undef to get english only and no-langpacks for a faster smoketest build
 %define langpacks 1
@@ -92,84 +92,85 @@
 Patch17: openoffice.org-1.9.123.ooo53397.prelinkoptimize.desktop.patch
 Patch18: openoffice.org-2.0.1.ooo58606.sw.pre-edit.patch
 Patch19: openoffice.org-2.0.2.rh188467.printingdefaults.patch
-Patch20: openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch
-Patch21: openoffice.org-2.0.4.ooo69051.vcl.singlekeypress.patch
-Patch22: pseudoworkspace.valgrind1.patch
-Patch23: openoffice.org-2.0.4.rhXXXXXX.padmin.nospadmin.patch
-Patch24: openoffice.org-2.0.4.rh217065.syncbackspace.patch
-Patch25: openoffice.org.2.0.4.ooo80412.i18npool.extendgrapheme.patch
-Patch26: openoffice.org-2.1.0.ooo65491.psprint.enablenups.patch
-Patch27: openoffice.org-2.0.3.rh127576.gtkunixprintdialog.localize
-Patch28: openoffice.org-2.1.0.oooXXXXX.lingucomponent.systemdicts.patch
-Patch29: openoffice.org-2.1.0.rh217269.officecfg.nosequencecheck.patch
-Patch30: workspace.tl37.patch
-Patch31: openoffice.org-2.1.0.ooo73201.sw.a11yloadcrash.patch
-Patch32: openoffice.org-2.1.0.oooXXXXX.vcl.dontsortglyphs.patch
-Patch33: openoffice.org-2.2.0.ooo73863.vcl.imcommit.patch
-Patch34: openoffice.org-2.2.0.ooo74188.sw.cursorinsideglyph.patch
-Patch35: openoffice.org-2.2.0.ooo68717.gstreamer.video.patch
-Patch36: openoffice.org-2.2.0.ooo63159.sal.dtype.patch
-Patch37: openoffice.org-2.2.0.rh232389.tango.patch
-Patch38: openoffice.org-2.2.0.ooo76393.sal.dynamicsection.patch
-Patch39: openoffice.org-2.2.0.ooo76424.nonatnum.bn_IN.18npool.patch
-Patch40: openoffice.org-2.0.3.ooo80816.selinux.bridges.patch
-Patch41: openoffice.org-2.2.1.ooo78971.xmloff.outofrange.patch
-Patch42: openoffice.org-2.2.1.oooXXXXX.sw.titlepagedialog.patch
-Patch43: openoffice.org-2.2.1.ooo79481.sw.rowordcount.patch
-Patch44: openoffice.org-2.3.0.ooo80257.sd.textonlystyle.patch
-Patch45: openoffice.org-2.3.0.ooo80257.sd.textonlystyle.tar.gz
-Patch46: workspace.unifysound01.patch
-Patch47: openoffice.org-2.2.0.gccXXXXX.solenv.javaregistration.patch
-Patch48: openoffice.org-2.3.0.ooo81321.cppu.silencewarnings.patch
-Patch49: openoffice.org-2.3.0.ooo76649.httpencoding.patch
-Patch50: openoffice.org-2.3.0.ooo82966.svx.missing3d.patch
-Patch51: openoffice.org-2.3.1.ooo83878.unopkg.enablelinking.patch
-Patch52: workspace.notes2.patch
-Patch53: openoffice.org-2.3.1.ooo84676.ucb.davprotocol.patch
-Patch54: openoffice.org-2.3.1.ooo84621.sw.insertexcel.patch
-Patch55: openoffice.org-2.3.1.ooo84770.svx.eventsmismatch.patch
-Patch56: openoffice.org-2.4.0.ooo85054.stlport.noorigs.patch
-Patch57: openoffice.org-2.4.0.ooo86670.config_office.xpcomasxul.patch
-Patch58: openoffice.org-2.4.0.ooo85097.desktop.pagein.patch
-Patch59: openoffice.org-2.4.0.oooXXXXX.solenv.paths.patch
-Patch60: openoffice.org-2.4.0.rh133741.alwaysgtk.vcl.patch
-Patch61: openoffice.org-2.4.0.ooo85385.svtools.a11ycrash.patch
-Patch62: openoffice.org-2.4.0.ooo85429.sw.a11ycrash.patch
-Patch63: openoffice.org-2.4.0.ooo85448.emptyrpath.patch
-Patch64: workspace.cairotext01.patch
-Patch65: workspace.gcc430two.patch
-Patch66: openoffice.org-2.4.0.ooo85854.sw.graphicsaveas.patch
-Patch67: openoffice.org-2.4.0.ooo85921.sd.editmasterundermouse.patch
-Patch68: openoffice.org-2.4.0.ooo85931.svx.getentrypos.patch
-Patch69: openoffice.org-2.4.0.ooo86123.ucb.newneon.patch
-Patch70: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch
-Patch71: openoffice.org-2.4.0.oooXXXXX.psprint.debugcups.patch
-Patch72: openoffice.org-2.3.0.ooo86866.embeddedobj.plusequalsoperator.patch
-Patch73: openoffice.org-2.3.0.ooo86882.vcl.unsigned_int_to_long.patch
-Patch74: openoffice.org-2.4.0.ooo86924.sfx2.iconchanges.patch
-Patch75: openoffice.org-2.4.0.ooo87204.toolkit.64bitevent.patch
-Patch76: openoffice.org-2.4.0.ooo87490.sfx2.allprotocols.urlopen.patch
-Patch77: openoffice.org-3.0.0.ooo85691.vcl.tooltipcolor.patch
-Patch78: openoffice.org-3.0.0.ooo87991.fpickersafe.patch
-Patch79: openoffice.org-3.0.0.ooo88033.svx.a11ycrash.patch
-Patch80: openoffice.org-2.4.0.ooo87071.sd.backgroundfix.patch
-Patch81: openoffice.org-3.0.0.ooo89002.vcl.symbolfonts.patch
-Patch82: workspace.impress138.patch
-Patch83: openoffice.org-2.4.0.gcc36187.noaliasingbusted.patch
-Patch84: openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch
-Patch85: openoffice.org-3.0.0.ooo90037.vcl.cairotransforms.patch
-Patch86: openoffice.org-3.0.0.ooo82545.np_sdk.x86_64.patch
-Patch87: openoffice.org-3.0.0.ooo90306.sw.wrongprotection.patch
-Patch88: openoffice.org-3.0.0.ooo48400.svx.fixspelling.patch
-Patch89: openoffice.org-3.0.0.ooo90697.sd.a11ycrash.patch
-Patch90: workspace.locdat30.patch
-Patch91: openoffice.org-3.0.0.ooo86142.serbiannumbering.patch
-Patch92: openoffice.org-3.0.0.ooo92026.sd.disposed_during_disposing.patch
-Patch93: openoffice.org-3.0.0.ooo92253.dbaccess.a11y.crash
-Patch94: openoffice.org-3.0.0.ooo92343.svtools.strangethrow.patch
-Patch95: openoffice.org-2.4.1.ooo92217.sal.alloc.patch
-Patch96: openoffice.org-2.4.1.ooo81576.vcl.fixscale.patch
-Patch97: openoffice.org-3.0.0.ooo95533.sw.safertableexport.patch
+Patch20: openoffice.org-2.0.4.ooo69051.vcl.singlekeypress.patch
+Patch21: pseudoworkspace.valgrind1.patch
+Patch22: openoffice.org-2.0.4.rhXXXXXX.padmin.nospadmin.patch
+Patch23: openoffice.org-2.0.4.rh217065.syncbackspace.patch
+Patch24: openoffice.org.2.0.4.ooo80412.i18npool.extendgrapheme.patch
+Patch25: openoffice.org-2.1.0.ooo65491.psprint.enablenups.patch
+Patch26: openoffice.org-2.0.3.rh127576.gtkunixprintdialog.localize
+Patch27: openoffice.org-2.1.0.oooXXXXX.lingucomponent.systemdicts.patch
+Patch28: openoffice.org-2.1.0.rh217269.officecfg.nosequencecheck.patch
+Patch29: workspace.tl37.patch
+Patch30: openoffice.org-2.1.0.ooo73201.sw.a11yloadcrash.patch
+Patch31: openoffice.org-2.1.0.oooXXXXX.vcl.dontsortglyphs.patch
+Patch32: openoffice.org-2.2.0.ooo73863.vcl.imcommit.patch
+Patch33: openoffice.org-2.2.0.ooo74188.sw.cursorinsideglyph.patch
+Patch34: openoffice.org-2.2.0.ooo68717.gstreamer.video.patch
+Patch35: openoffice.org-2.2.0.ooo63159.sal.dtype.patch
+Patch36: openoffice.org-2.2.0.rh232389.tango.patch
+Patch37: openoffice.org-2.2.0.ooo76393.sal.dynamicsection.patch
+Patch38: openoffice.org-2.2.0.ooo76424.nonatnum.bn_IN.18npool.patch
+Patch39: openoffice.org-2.0.3.ooo80816.selinux.bridges.patch
+Patch40: openoffice.org-2.2.1.ooo78971.xmloff.outofrange.patch
+Patch41: openoffice.org-2.2.1.oooXXXXX.sw.titlepagedialog.patch
+Patch42: openoffice.org-2.2.1.ooo79481.sw.rowordcount.patch
+Patch43: openoffice.org-2.3.0.ooo80257.sd.textonlystyle.patch
+Patch44: openoffice.org-2.3.0.ooo80257.sd.textonlystyle.tar.gz
+Patch45: workspace.unifysound01.patch
+Patch46: openoffice.org-2.2.0.gccXXXXX.solenv.javaregistration.patch
+Patch47: openoffice.org-2.3.0.ooo81321.cppu.silencewarnings.patch
+Patch48: openoffice.org-2.3.0.ooo76649.httpencoding.patch
+Patch49: openoffice.org-2.3.0.ooo82966.svx.missing3d.patch
+Patch50: openoffice.org-2.3.1.ooo83878.unopkg.enablelinking.patch
+Patch51: workspace.notes2.patch
+Patch52: openoffice.org-2.3.1.ooo84676.ucb.davprotocol.patch
+Patch53: openoffice.org-2.3.1.ooo84621.sw.insertexcel.patch
+Patch54: openoffice.org-2.3.1.ooo84770.svx.eventsmismatch.patch
+Patch55: openoffice.org-2.4.0.ooo85054.stlport.noorigs.patch
+Patch56: openoffice.org-2.4.0.ooo86670.config_office.xpcomasxul.patch
+Patch57: openoffice.org-2.4.0.ooo85097.desktop.pagein.patch
+Patch58: openoffice.org-2.4.0.oooXXXXX.solenv.paths.patch
+Patch59: openoffice.org-2.4.0.rh133741.alwaysgtk.vcl.patch
+Patch60: openoffice.org-2.4.0.ooo85385.svtools.a11ycrash.patch
+Patch61: openoffice.org-2.4.0.ooo85429.sw.a11ycrash.patch
+Patch62: openoffice.org-2.4.0.ooo85448.emptyrpath.patch
+Patch63: workspace.cairotext01.patch
+Patch64: openoffice.org-3.0.0.ooo88303.vcl.dynamicfontoptions.patch
+Patch65: openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch
+Patch66: workspace.gcc430two.patch
+Patch67: openoffice.org-2.4.0.ooo85854.sw.graphicsaveas.patch
+Patch68: openoffice.org-2.4.0.ooo85921.sd.editmasterundermouse.patch
+Patch69: openoffice.org-2.4.0.ooo85931.svx.getentrypos.patch
+Patch70: openoffice.org-2.4.0.ooo86123.ucb.newneon.patch
+Patch71: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch
+Patch72: openoffice.org-2.4.0.oooXXXXX.psprint.debugcups.patch
+Patch73: openoffice.org-2.3.0.ooo86866.embeddedobj.plusequalsoperator.patch
+Patch74: openoffice.org-2.3.0.ooo86882.vcl.unsigned_int_to_long.patch
+Patch75: openoffice.org-2.4.0.ooo86924.sfx2.iconchanges.patch
+Patch76: openoffice.org-2.4.0.ooo87204.toolkit.64bitevent.patch
+Patch77: openoffice.org-2.4.0.ooo87490.sfx2.allprotocols.urlopen.patch
+Patch78: openoffice.org-3.0.0.ooo85691.vcl.tooltipcolor.patch
+Patch79: openoffice.org-3.0.0.ooo87991.fpickersafe.patch
+Patch80: openoffice.org-3.0.0.ooo88033.svx.a11ycrash.patch
+Patch81: openoffice.org-2.4.0.ooo87071.sd.backgroundfix.patch
+Patch82: openoffice.org-3.0.0.ooo89002.vcl.symbolfonts.patch
+Patch83: workspace.impress138.patch
+Patch84: openoffice.org-2.4.0.gcc36187.noaliasingbusted.patch
+Patch85: openoffice.org-3.0.0.ooo87970.vcl.samenamesubs.patch
+Patch86: openoffice.org-3.0.0.ooo90037.vcl.cairotransforms.patch
+Patch87: openoffice.org-3.0.0.ooo82545.np_sdk.x86_64.patch
+Patch88: openoffice.org-3.0.0.ooo90306.sw.wrongprotection.patch
+Patch89: openoffice.org-3.0.0.ooo48400.svx.fixspelling.patch
+Patch90: openoffice.org-3.0.0.ooo90697.sd.a11ycrash.patch
+Patch91: workspace.locdat30.patch
+Patch92: openoffice.org-3.0.0.ooo86142.serbiannumbering.patch
+Patch93: openoffice.org-3.0.0.ooo92026.sd.disposed_during_disposing.patch
+Patch94: openoffice.org-3.0.0.ooo92253.dbaccess.a11y.crash
+Patch95: openoffice.org-3.0.0.ooo92343.svtools.strangethrow.patch
+Patch96: openoffice.org-2.4.1.ooo92217.sal.alloc.patch
+Patch97: openoffice.org-2.4.1.ooo81576.vcl.fixscale.patch
+Patch98: openoffice.org-3.0.0.ooo95533.sw.safertableexport.patch
 
 %define instdir %{_libdir}/openoffice.org
 
@@ -1076,84 +1077,85 @@
 %patch17 -p1 -b .ooo53397.prelinkoptimize.desktop.patch
 %patch18 -p1 -b .ooo58606.sw.pre-edit.patch
 %patch19 -p1
-%patch20 -p1 -b .ooo64508.vcl.honourfontconfighinting.patch
-%patch21 -p1 -b .ooo69051.vcl.singlekeypress.patch
-%patch22 -p1 -b .pseudoworkspace.valgrind1.patch
-%patch23 -p1 -b .rhXXXXXX.padmin.nospadmin.patch
-%patch24 -p1 -b .rh217065.syncbackspace.patch
-%patch25 -p1 -b .ooo80412.i18npool.extendgrapheme.patch
-%patch26 -p1 -b .ooo65491.psprint.enablenups.patch
-cat %{PATCH27} >> svtools/source/dialogs/localize.sdf
-%patch28 -p1 -b .oooXXXXX.lingucomponent.systemdicts.patch
-%patch29 -p1 -b .rh217269.officecfg.nosequencecheck.patch
-%patch30 -p1 -b .tl37.patch
-%patch31 -p1 -b .ooo73201.sw.a11yloadcrash.patch
-%patch32 -p1 -b .oooXXXXX.vcl.dontsortglyphs.patch
-%patch33 -p1 -b .ooo73863.vcl.imcommit.patch
-%patch34 -p1 -b .ooo74188.sw.cursorinsideglyph.patch
-%patch35 -p0 -b .ooo68717.gstreamer.video.patch
-%patch36 -p1 -b .ooo63159.sal.dtype.patch
-%patch37 -p1 -b .rh232389.tango.patch
-%patch38 -p1 -b .ooo76393.sal.dynamicsection.patch
-%patch39 -p1 -b .ooo76424.nonatnum.bn_IN.18npool.patch
-%patch40 -p1 -b .ooo80816.selinux.bridges.patch
-%patch41 -p1 -b .ooo78971.xmloff.outofrange.patch
-%patch42 -p1 -b .oooXXXXX.sw.titlepagedialog.patch
-%patch43 -p1 -b .ooo79481.sw.rowordcount.patch
-%patch44 -p1 -b .ooo80257.sd.textonlystyle.patch
-tar xzf %{PATCH45}
-%patch46 -p1 -b .workspace.unifysound01.patch
-%patch47 -p1 -b .gccXXXXX.solenv.javaregistration.patch
-%patch48 -p1 -b .ooo81321.cppu.silencewarnings.patch
-%patch49 -p1 -b .ooo76649.httpencoding.patc
-%patch50 -p1 -b .ooo82966.svx.missing3d.patch
-%patch51 -p1 -b .ooo83878.unopkg.enablelinking.patch
-%patch52 -p1 -b .workspace.notes2.patch
-%patch53 -p1 -b .ooo84676.ucb.davprotocol.patch
-%patch54 -p1 -b .ooo84621.sw.insertexcel.patch
-%patch55 -p1 -b .ooo84770.svx.eventsmismatch.patch
-%patch56 -p1 -b .ooo85054.stlport.noorigs.patch
-%patch57 -p1 -b .ooo86670.config_office.xpcomasxul.patch
-%patch58 -p1 -b .ooo85097.desktop.pagein.patch
-%patch59 -p1
-%patch60 -p1 -b .rh133741.alwaysgtk.vcl.patch
-%patch61 -p1 -b .ooo85385.svtools.a11ycrash.patch
-%patch62 -p1 -b .ooo85429.sw.a11ycrash.patch
-%patch63 -p1 -b .ooo85448.emptyrpath.patch
-%patch64 -p1 -b .workspace.cairotext01.patch
-%patch65 -p1 -b .workspace.gcc430two.patch
-%patch66 -p1 -b .ooo85854.sw.graphicsaveas.patch
-%patch67 -p1 -b .ooo85921.sd.editmasterundermouse.patch
-%patch68 -p1 -b .ooo85931.svx.getentrypos.patch
-%patch69 -p1 -b .ooo86123.ucb.newneon.patch
-%patch70 -p1 -b .ooo86080.unopkg.bodge.patch
-%patch71 -p1 -b .oooXXXXX.psprint.debugcups.patch
-%patch72 -p1 -b .ooo86866.embeddedobj.plusequalsoperator.patch
-%patch73 -p1 -b .ooo86882.vcl.unsigned_int_to_long.patch
-%patch74 -p1 -b .ooo86924.sfx2.iconchanges.patch
-%patch75 -p1 -b .ooo87204.toolkit.64bitevent.patch
-%patch76 -p1 -b .ooo87490.sfx2.allprotocols.urlopen.patch
-%patch77 -p1 -b .ooo85691.vcl.tooltipcolor.patch
-%patch78 -p1 -b .ooo87991.fpickersafe.patch
-%patch79 -p1 -b .ooo88033.svx.a11ycrash.patch
-%patch80 -p1 -b .ooo87071.sd.backgroundfix.patch
-%patch81 -p1 -b .ooo89002.vcl.symbolfonts.patch
-%patch82 -p1 -b .workspace.impress138.patch
-%patch83 -p1 -b .gcc36187.noaliasingbusted.patch
-%patch84 -p1 -b .ooo87970.vcl.samenamesubs.patch
-%patch85 -p1 -b .ooo90037.vcl.cairotransforms.patch
-%patch86 -p1 -b .ooo82545.np_sdk.x86_64.patch
-%patch87 -p1 -b .ooo90306.sw.wrongprotection.patch
-%patch88 -p1 -b .ooo48400.svx.fixspelling.patch
-%patch89 -p1 -b .ooo90697.sd.a11ycrash.patch
-%patch90 -p1 -b .workspace.locdat30.patch
-%patch91 -p1 -b .ooo86142.serbiannumbering.patch
-%patch92 -p1 -b .ooo92026.sd.disposed_during_disposing.patch
-%patch93 -p1 -b .ooo92253.dbaccess.a11y.crash
-%patch94 -p1 -b .ooo92343.svtools.strangethrow.patch
-%patch95 -p1 -b .ooo92217.sal.alloc.patch
-%patch96 -p1 -b .ooo81576.vcl.fixscale.patch
-%patch97 -p1 -b .ooo95533.sw.safertableexport.patch
+%patch20 -p1 -b .ooo69051.vcl.singlekeypress.patch
+%patch21 -p1 -b .pseudoworkspace.valgrind1.patch
+%patch22 -p1 -b .rhXXXXXX.padmin.nospadmin.patch
+%patch23 -p1 -b .rh217065.syncbackspace.patch
+%patch24 -p1 -b .ooo80412.i18npool.extendgrapheme.patch
+%patch25 -p1 -b .ooo65491.psprint.enablenups.patch
+cat %{PATCH26} >> svtools/source/dialogs/localize.sdf
+%patch27 -p1 -b .oooXXXXX.lingucomponent.systemdicts.patch
+%patch28 -p1 -b .rh217269.officecfg.nosequencecheck.patch
+%patch29 -p1 -b .tl37.patch
+%patch30 -p1 -b .ooo73201.sw.a11yloadcrash.patch
+%patch31 -p1 -b .oooXXXXX.vcl.dontsortglyphs.patch
+%patch32 -p1 -b .ooo73863.vcl.imcommit.patch
+%patch33 -p1 -b .ooo74188.sw.cursorinsideglyph.patch
+%patch34 -p0 -b .ooo68717.gstreamer.video.patch
+%patch35 -p1 -b .ooo63159.sal.dtype.patch
+%patch36 -p1 -b .rh232389.tango.patch
+%patch37 -p1 -b .ooo76393.sal.dynamicsection.patch
+%patch38 -p1 -b .ooo76424.nonatnum.bn_IN.18npool.patch
+%patch39 -p1 -b .ooo80816.selinux.bridges.patch
+%patch40 -p1 -b .ooo78971.xmloff.outofrange.patch
+%patch41 -p1 -b .oooXXXXX.sw.titlepagedialog.patch
+%patch42 -p1 -b .ooo79481.sw.rowordcount.patch
+%patch43 -p1 -b .ooo80257.sd.textonlystyle.patch
+tar xzf %{PATCH44}
+%patch45 -p1 -b .workspace.unifysound01.patch
+%patch46 -p1 -b .gccXXXXX.solenv.javaregistration.patch
+%patch47 -p1 -b .ooo81321.cppu.silencewarnings.patch
+%patch48 -p1 -b .ooo76649.httpencoding.patc
+%patch49 -p1 -b .ooo82966.svx.missing3d.patch
+%patch50 -p1 -b .ooo83878.unopkg.enablelinking.patch
+%patch51 -p1 -b .workspace.notes2.patch
+%patch52 -p1 -b .ooo84676.ucb.davprotocol.patch
+%patch53 -p1 -b .ooo84621.sw.insertexcel.patch
+%patch54 -p1 -b .ooo84770.svx.eventsmismatch.patch
+%patch55 -p1 -b .ooo85054.stlport.noorigs.patch
+%patch56 -p1 -b .ooo86670.config_office.xpcomasxul.patch
+%patch57 -p1 -b .ooo85097.desktop.pagein.patch
+%patch58 -p1
+%patch59 -p1 -b .rh133741.alwaysgtk.vcl.patch
+%patch60 -p1 -b .ooo85385.svtools.a11ycrash.patch
+%patch61 -p1 -b .ooo85429.sw.a11ycrash.patch
+%patch62 -p1 -b .ooo85448.emptyrpath.patch
+%patch63 -p1 -b .workspace.cairotext01.patch
+%patch64 -p1 -b .ooo88303.vcl.dynamicfontoptions.patch
+%patch65 -p1 -b .ooo64508.vcl.honourfontconfighinting.patch
+%patch66 -p1 -b .workspace.gcc430two.patch
+%patch67 -p1 -b .ooo85854.sw.graphicsaveas.patch
+%patch68 -p1 -b .ooo85921.sd.editmasterundermouse.patch
+%patch69 -p1 -b .ooo85931.svx.getentrypos.patch
+%patch70 -p1 -b .ooo86123.ucb.newneon.patch
+%patch71 -p1 -b .ooo86080.unopkg.bodge.patch
+%patch72 -p1 -b .oooXXXXX.psprint.debugcups.patch
+%patch73 -p1 -b .ooo86866.embeddedobj.plusequalsoperator.patch
+%patch74 -p1 -b .ooo86882.vcl.unsigned_int_to_long.patch
+%patch75 -p1 -b .ooo86924.sfx2.iconchanges.patch
+%patch76 -p1 -b .ooo87204.toolkit.64bitevent.patch
+%patch77 -p1 -b .ooo87490.sfx2.allprotocols.urlopen.patch
+%patch78 -p1 -b .ooo85691.vcl.tooltipcolor.patch
+%patch79 -p1 -b .ooo87991.fpickersafe.patch
+%patch80 -p1 -b .ooo88033.svx.a11ycrash.patch
+%patch81 -p1 -b .ooo87071.sd.backgroundfix.patch
+%patch82 -p1 -b .ooo89002.vcl.symbolfonts.patch
+%patch83 -p1 -b .workspace.impress138.patch
+%patch84 -p1 -b .gcc36187.noaliasingbusted.patch
+%patch85 -p1 -b .ooo87970.vcl.samenamesubs.patch
+%patch86 -p1 -b .ooo90037.vcl.cairotransforms.patch
+%patch87 -p1 -b .ooo82545.np_sdk.x86_64.patch
+%patch88 -p1 -b .ooo90306.sw.wrongprotection.patch
+%patch89 -p1 -b .ooo48400.svx.fixspelling.patch
+%patch90 -p1 -b .ooo90697.sd.a11ycrash.patch
+%patch91 -p1 -b .workspace.locdat30.patch
+%patch92 -p1 -b .ooo86142.serbiannumbering.patch
+%patch93 -p1 -b .ooo92026.sd.disposed_during_disposing.patch
+%patch94 -p1 -b .ooo92253.dbaccess.a11y.crash
+%patch95 -p1 -b .ooo92343.svtools.strangethrow.patch
+%patch96 -p1 -b .ooo92217.sal.alloc.patch
+%patch97 -p1 -b .ooo81576.vcl.fixscale.patch
+%patch98 -p1 -b .ooo95533.sw.safertableexport.patch
 
 %build
 echo build start time is `date`, diskspace: `df -h . | tail -n 1`
@@ -2949,6 +2951,9 @@
 
 
 %changelog
+* Tue Nov 18 2008 Caolan McNamara <caolanm at redhat.com> - 1:2.4.2-18.2
+- Resolves: rhbz#471103 improve font-settings
+
 * Wed Oct 29 2008 Caolan McNamara <caolanm at redhat.com> - 1:2.4.2-18.1
 - Resolves: ooo#94495 Toggle weblayout/normal layout and notes
 - Resolves: rhbz#465792 openoffice.org-2.4.1.ooo81576.vcl.fixscale.patch




More information about the fedora-extras-commits mailing list