rpms/openoffice.org/F-12 openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch, NONE, 1.1 openoffice.org.spec, 1.2015, 1.2016

Caolan McNamara caolanm at fedoraproject.org
Thu Oct 8 12:56:43 UTC 2009


Author: caolanm

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

Modified Files:
	openoffice.org.spec 
Added Files:
	openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch 
Log Message:
Resolves: rhbz#527719 add openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch

openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch:
 source/fontmanager/fontconfig.cxx |  142 +++++++++++++++++++++++++++++++++++++-
 util/makefile.mk                  |    1 
 2 files changed, 141 insertions(+), 2 deletions(-)

--- NEW FILE openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch ---
diff -ru psprint.orig/source/fontmanager/fontconfig.cxx psprint/source/fontmanager/fontconfig.cxx
--- psprint.orig/source/fontmanager/fontconfig.cxx	2009-10-08 13:25:00.000000000 +0100
+++ psprint/source/fontmanager/fontconfig.cxx	2009-10-08 13:51:51.000000000 +0100
@@ -82,6 +82,9 @@
 #include <rtl/locale.hxx>
 #include <sal/alloca.h>
 
+#include <i18nutil/unicode.hxx>  //unicode::getUnicodeScriptType
+#include <com/sun/star/i18n/ScriptType.hdl> //ScriptType
+
 #include <utility>
 #include <algorithm>
 
@@ -895,6 +898,138 @@
     }
 }
 
+const char* pick_sample_language(const sal_uInt32 cCode)
+{
+    using namespace ::com::sun::star::i18n;
+
+    static ScriptTypeList aScripts[] =
+    {
+        { UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin },
+        { UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement },
+        { UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA },
+        { UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB },
+        { UnicodeScript_kGreek, UnicodeScript_kGreek, UnicodeScript_kGreek },
+        { UnicodeScript_kCyrillic, UnicodeScript_kCyrillic, UnicodeScript_kCyrillic },
+        { UnicodeScript_kArmenian, UnicodeScript_kArmenian, UnicodeScript_kArmenian },
+        { UnicodeScript_kHebrew, UnicodeScript_kHebrew, UnicodeScript_kHebrew },
+        { UnicodeScript_kArabic, UnicodeScript_kArabic, UnicodeScript_kArabic },
+        { UnicodeScript_kSyriac, UnicodeScript_kSyriac, UnicodeScript_kSyriac },
+        { UnicodeScript_kThaana, UnicodeScript_kThaana, UnicodeScript_kThaana },
+        { UnicodeScript_kDevanagari, UnicodeScript_kDevanagari, UnicodeScript_kDevanagari },
+        { UnicodeScript_kBengali, UnicodeScript_kBengali, UnicodeScript_kBengali },
+        { UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi },
+        { UnicodeScript_kGujarati, UnicodeScript_kGujarati, UnicodeScript_kGujarati },
+        { UnicodeScript_kOriya, UnicodeScript_kOriya, UnicodeScript_kOriya },
+        { UnicodeScript_kTamil, UnicodeScript_kTamil, UnicodeScript_kTamil },
+        { UnicodeScript_kTelugu, UnicodeScript_kTelugu, UnicodeScript_kTelugu },
+        { UnicodeScript_kKannada, UnicodeScript_kKannada, UnicodeScript_kKannada },
+        { UnicodeScript_kMalayalam, UnicodeScript_kMalayalam, UnicodeScript_kMalayalam },
+        { UnicodeScript_kSinhala, UnicodeScript_kSinhala, UnicodeScript_kSinhala },
+        { UnicodeScript_kThai, UnicodeScript_kThai, UnicodeScript_kThai },
+        { UnicodeScript_kLao, UnicodeScript_kLao, UnicodeScript_kLao },
+        { UnicodeScript_kTibetan, UnicodeScript_kTibetan, UnicodeScript_kTibetan },
+        { UnicodeScript_kMyanmar, UnicodeScript_kMyanmar, UnicodeScript_kMyanmar },
+        { UnicodeScript_kGeorgian, UnicodeScript_kGeorgian, UnicodeScript_kGeorgian },
+        { UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo },
+        { UnicodeScript_kEthiopic, UnicodeScript_kEthiopic, UnicodeScript_kEthiopic },
+        { UnicodeScript_kCherokee, UnicodeScript_kCherokee, UnicodeScript_kCherokee },
+        { UnicodeScript_kUnifiedCanadianAboriginalSyllabics, 
+            UnicodeScript_kUnifiedCanadianAboriginalSyllabics, 
+            UnicodeScript_kUnifiedCanadianAboriginalSyllabics },
+        { UnicodeScript_kKhmer, UnicodeScript_kKhmer, UnicodeScript_kKhmer },
+        { UnicodeScript_kMongolian, UnicodeScript_kMongolian, UnicodeScript_kMongolian },
+        { UnicodeScript_kLatinExtendedAdditional, UnicodeScript_kLatinExtendedAdditional,
+          UnicodeScript_kLatinExtendedAdditional },
+        { UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended },
+        { UnicodeScript_kHiragana, UnicodeScript_kHiragana, UnicodeScript_kHiragana },
+        { UnicodeScript_kKatakana, UnicodeScript_kKatakana, UnicodeScript_kKatakana },
+        { UnicodeScript_kHangulCompatibilityJamo, UnicodeScript_kHangulCompatibilityJamo, 
+          UnicodeScript_kHangulCompatibilityJamo },
+        { UnicodeScript_kHangulSyllable, UnicodeScript_kHangulSyllable,
+          UnicodeScript_kHangulSyllable },
+        { UnicodeScript_kArabicPresentationB, UnicodeScript_kArabicPresentationB,
+          UnicodeScript_kArabicPresentationB },
+        { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, UnicodeScript_kScriptCount }
+    };
+
+    switch (unicode::getUnicodeScriptType(cCode, aScripts, UnicodeScript_kScriptCount))
+    {
+        case UnicodeScript_kBasicLatin:
+        case UnicodeScript_kLatin1Supplement:
+        case UnicodeScript_kLatinExtendedA:
+        case UnicodeScript_kLatinExtendedB:
+        case UnicodeScript_kLatinExtendedAdditional:
+            return "en";
+        case UnicodeScript_kGreek:
+        case UnicodeScript_kGreekExtended:
+            return "el";
+        case UnicodeScript_kCyrillic:
+            return "ru";
+        case UnicodeScript_kArmenian:
+            return "hy";
+        case UnicodeScript_kHebrew:
+            return "he";
+        case UnicodeScript_kArabic:
+        case UnicodeScript_kArabicPresentationB:
+            return "ar";
+        case UnicodeScript_kSyriac:
+            return "syr";
+        case UnicodeScript_kThaana:
+            return "dv";
+        case UnicodeScript_kDevanagari:
+            return "hi";
+        case UnicodeScript_kBengali:
+            return "bn";
+        case UnicodeScript_kGurmukhi:
+            return "pa";
+        case UnicodeScript_kGujarati:
+            return "gu";
+        case UnicodeScript_kOriya:
+            return "or";
+        case UnicodeScript_kTamil:
+            return "ta";
+        case UnicodeScript_kTelugu:
+            return "te";
+        case UnicodeScript_kKannada:
+            return "ka";
+        case UnicodeScript_kMalayalam:
+            return "ml";
+        case UnicodeScript_kSinhala:
+            return "si";
+        case UnicodeScript_kThai:
+            return "th";
+        case UnicodeScript_kLao:
+            return "lo";
+        case UnicodeScript_kTibetan:
+            return "bo";
+        case UnicodeScript_kMyanmar:
+            return "my";
+        case UnicodeScript_kGeorgian:
+            return "ka";
+        case UnicodeScript_kHangulJamo:
+        case UnicodeScript_kHangulCompatibilityJamo:
+        case UnicodeScript_kHangulSyllable:
+            return "ko";
+        case UnicodeScript_kEthiopic:
+            return "am";
+        case UnicodeScript_kCherokee:
+            return "chr";
+        case UnicodeScript_kUnifiedCanadianAboriginalSyllabics:
+            return "ui";
+        case UnicodeScript_kKhmer:
+            return "km";
+        case UnicodeScript_kMongolian:
+            return "mn";
+        case UnicodeScript_kHiragana:
+        case UnicodeScript_kKatakana:
+            return "ja";
+        default:
+            break;
+    }
+
+    return NULL;
+}
+
 rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName,
     rtl::OUString& rMissingCodes, const rtl::OString &rLangAttrib,
     italic::type &rItalic, weight::type &rWeight,
@@ -916,8 +1051,6 @@
     rWrapper.FcPatternAddString( pPattern, FC_FAMILY, pTargetNameUtf8 );
 
     const FcChar8* pLangAttribUtf8 = (FcChar8*)rLangAttrib.getStr();
-    if( rLangAttrib.getLength() )
-        rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 );
 
     // Add required Unicode characters, if any
     if ( rMissingCodes.getLength() )
@@ -928,11 +1061,16 @@
            // also handle unicode surrogates
            const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex );
            rWrapper.FcCharSetAddChar( unicodes, nCode );
+           if (!pLangAttribUtf8)
+               pLangAttribUtf8 = (const FcChar8*)pick_sample_language(nCode);
        }
        rWrapper.FcPatternAddCharSet( pPattern, FC_CHARSET, unicodes);
        rWrapper.FcCharSetDestroy( unicodes );
     }
 
+    if( pLangAttribUtf8 )
+        rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 );
+
     addtopattern(rWrapper, pPattern, rItalic, rWeight, rWidth, rPitch);
 
     // query fontconfig for a substitute
diff -ru psprint.orig/util/makefile.mk psprint/util/makefile.mk
--- psprint.orig/util/makefile.mk	2009-10-08 13:25:00.000000000 +0100
+++ psprint/util/makefile.mk	2009-10-08 13:25:09.000000000 +0100
@@ -67,6 +67,7 @@
 
 SHL1STDLIBS=$(UNOTOOLSLIB)		\
 			$(I18NISOLANGLIB) 	\
+			$(I18NUTILLIB)		\
 			$(I18NPAPERLIB) 	\
 			$(TOOLSLIB) 		\
             $(COMPHELPERLIB)    \


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/F-12/openoffice.org.spec,v
retrieving revision 1.2015
retrieving revision 1.2016
diff -u -p -r1.2015 -r1.2016
--- openoffice.org.spec	5 Oct 2009 11:50:37 -0000	1.2015
+++ openoffice.org.spec	8 Oct 2009 12:56:42 -0000	1.2016
@@ -163,6 +163,7 @@ Patch86: openoffice.org-3.1.1.oooXXXXXX.
 Patch87: workspace.aw073.patch
 Patch88: openoffice.org-3.1.1.ooo92671.vcl.coverageformat2.patch
 Patch89: openoffice.org-3.1.1.ooo105613.vcl.a11y.exceptions.patch
+Patch90: openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch
 
 %define python_py_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0)")
 %define instdir %{_libdir}
@@ -1712,6 +1713,7 @@ cat %{PATCH11} >> svtools/source/dialogs
 %patch87 -p0 -b .workspace.aw073.patch
 %patch88 -p0 -b .ooo92671.vcl.coverageformat2.patch
 %patch89 -p0 -b .ooo105613.vcl.a11y.exceptions.patch
+%patch90 -p0 -b .oooXXXXXX.vcl.sniffscriptforsubs.patch
 
 %build
 echo build start time is `date`, diskspace: `df -h . | tail -n 1`
@@ -4245,8 +4247,9 @@ fi
     unopkg list --shared > /dev/null 2>&1 || :
 
 %changelog
-* Mon Oct 05 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-19.11-UNRELEASED
+* Thu Oct 08 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-19.11
 - Resolves: rhbz#527177 add openoffice.org-3.1.1.ooo105613.vcl.a11y.exceptions.patch (caolanm)
+- Resolves: rhbz#527719 add openoffice.org-3.1.1.oooXXXXXX.vcl.sniffscriptforsubs.patch
 
 * Wed Sep 30 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-19.10
 - Resolves: rhbz#461617 gsub coverage format 2 with greater than 1 ranges (caolanm)




More information about the fedora-extras-commits mailing list