Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
e1fb965e
Kaydet (Commit)
e1fb965e
authored
Agu 14, 2012
tarafından
Caolán McNamara
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Resolves: icu#7601, icu#8198
Change-Id: I1d0d9a322a42fe7a020d46f21bb3c52a5070c866
üst
2380db59
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
178 additions
and
0 deletions
+178
-0
icu4c.7601.Indic-ccmp.patch
icu/icu4c.7601.Indic-ccmp.patch
+43
-0
icu4c.8198.revert.icu5431.patch
icu/icu4c.8198.revert.icu5431.patch
+127
-0
makefile.mk
icu/makefile.mk
+8
-0
No files found.
icu/icu4c.7601.Indic-ccmp.patch
0 → 100644
Dosyayı görüntüle @
e1fb965e
--- misc/icu/source/layout/IndicReordering.cpp 2009-07-01 20:51:26.000000000 +0200
+++ misc/build/icu/source/layout/IndicReordering.cpp 2011-01-08 11:12:49.950566538 +0100
@@ -13,6 +13,7 @@
U_NAMESPACE_BEGIN
+#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
#define loclFeatureTag LE_LOCL_FEATURE_TAG
#define initFeatureTag LE_INIT_FEATURE_TAG
#define nuktFeatureTag LE_NUKT_FEATURE_TAG
@@ -35,6 +36,7 @@
#define caltFeatureTag LE_CALT_FEATURE_TAG
#define kernFeatureTag LE_KERN_FEATURE_TAG
+#define ccmpFeatureMask 0x00000001UL
#define loclFeatureMask 0x80000000UL
#define rphfFeatureMask 0x40000000UL
#define blwfFeatureMask 0x20000000UL
@@ -73,7 +75,7 @@
#define repositionedGlyphMask 0x00000002UL
-#define basicShapingFormsMask ( loclFeatureMask | nuktFeatureMask | akhnFeatureMask | rkrfFeatureMask | blwfFeatureMask | halfFeatureMask | vatuFeatureMask | cjctFeatureMask )
+#define basicShapingFormsMask ( ccmpFeatureMask | loclFeatureMask | nuktFeatureMask | akhnFeatureMask | rkrfFeatureMask | blwfFeatureMask | halfFeatureMask | vatuFeatureMask | cjctFeatureMask )
#define positioningFormsMask ( kernFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask )
#define presentationFormsMask ( presFeatureMask | abvsFeatureMask | blwsFeatureMask | pstsFeatureMask | halnFeatureMask | caltFeatureMask )
@@ -480,6 +482,7 @@
#define tagArray0 (rphfFeatureMask | tagArray1)
static const FeatureMap featureMap[] = {
+ {ccmpFeatureTag, ccmpFeatureMask},
{loclFeatureTag, loclFeatureMask},
{initFeatureTag, initFeatureMask},
{nuktFeatureTag, nuktFeatureMask},
@@ -502,6 +505,7 @@
static const le_int32 featureCount = LE_ARRAY_SIZE(featureMap);
static const FeatureMap v2FeatureMap[] = {
+ {ccmpFeatureTag, ccmpFeatureMask},
{loclFeatureTag, loclFeatureMask},
{nuktFeatureTag, nuktFeatureMask},
{akhnFeatureTag, akhnFeatureMask},
icu/icu4c.8198.revert.icu5431.patch
0 → 100644
Dosyayı görüntüle @
e1fb965e
--- misc/icu/source/layout/IndicReordering.cpp (revision 26090)
+++ misc/build/icu/source/layout/IndicReordering.cpp (revision 25772)
@@ -126,8 +126,4 @@
FeatureMask fSMFeatures;
- LEUnicode fPreBaseConsonant;
- LEUnicode fPreBaseVirama;
- le_int32 fPBCIndex;
- FeatureMask fPBCFeatures;
void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass)
@@ -176,6 +172,5 @@
fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups),
fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0),
+ fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0)
- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0),
- fPreBaseConsonant(0), fPreBaseVirama(0), fPBCIndex(0), fPBCFeatures(0)
{
// nothing else to do...
@@ -196,6 +191,4 @@
fVMabove = fVMpost = 0;
fSMabove = fSMbelow = 0;
-
- fPreBaseConsonant = fPreBaseVirama = 0;
}
@@ -393,12 +386,4 @@
}
- void notePreBaseConsonant(le_uint32 index,LEUnicode PBConsonant, LEUnicode PBVirama, FeatureMask features)
- {
- fPBCIndex = index;
- fPreBaseConsonant = PBConsonant;
- fPreBaseVirama = PBVirama;
- fPBCFeatures = features;
- }
-
void noteBaseConsonant()
{
@@ -480,20 +465,4 @@
}
- void writePreBaseConsonant()
- {
- // The TDIL spec says that consonant + virama + RRA should produce a rakar in Malayalam. However,
- // it seems that almost none of the fonts for Malayalam are set up to handle this.
- // So, we're going to force the issue here by using the rakar as defined with RA in most fonts.
-
- if (fPreBaseConsonant == 0x0d31) { // RRA
- fPreBaseConsonant = 0x0d30; // RA
- }
-
- if (fPreBaseConsonant != 0) {
- writeChar(fPreBaseConsonant, fPBCIndex, fPBCFeatures);
- writeChar(fPreBaseVirama,fPBCIndex-1,fPBCFeatures);
- }
- }
-
le_int32 getOutputIndex()
{
@@ -754,5 +723,4 @@
}
-
IndicClassTable::CharClass charClass = CC_RESERVED;
IndicClassTable::CharClass nextClass = CC_RESERVED;
@@ -762,9 +730,7 @@
le_bool seenVattu = FALSE;
le_bool seenBelowBaseForm = FALSE;
- le_bool seenPreBaseForm = FALSE;
le_bool hasNukta = FALSE;
le_bool hasBelowBaseForm = FALSE;
le_bool hasPostBaseForm = FALSE;
- le_bool hasPreBaseForm = FALSE;
if (postBase < markStart && classTable->isNukta(chars[postBase])) {
@@ -780,20 +746,12 @@
hasBelowBaseForm = IndicClassTable::hasBelowBaseForm(charClass) && !hasNukta;
hasPostBaseForm = IndicClassTable::hasPostBaseForm(charClass) && !hasNukta;
- hasPreBaseForm = IndicClassTable::hasPreBaseForm(charClass) && !hasNukta;
if (IndicClassTable::isConsonant(charClass)) {
if (postBaseLimit == 0 || seenVattu ||
(baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) ||
+ !(hasBelowBaseForm || hasPostBaseForm)) {
- !(hasBelowBaseForm || hasPostBaseForm || hasPreBaseForm)) {
break;
}
- // Note any pre-base consonants
- if ( baseConsonant == lastConsonant && lastConsonant > 0 &&
- hasPreBaseForm && classTable->isVirama(chars[baseConsonant - 1])) {
- output.notePreBaseConsonant(lastConsonant,chars[lastConsonant],chars[lastConsonant-1],tagArray2);
- seenPreBaseForm = TRUE;
-
- }
// consonants with nuktas are never vattus
seenVattu = IndicClassTable::isVattu(charClass) && !hasNukta;
@@ -828,12 +786,10 @@
// write any pre-base consonants
- output.writePreBaseConsonant();
-
le_bool supressVattu = TRUE;
for (i = baseLimit; i < baseConsonant; i += 1) {
LEUnicode ch = chars[i];
+ // Don't put 'blwf' on first consonant.
+ FeatureMask features = (i == baseLimit? tagArray2 : tagArray1);
- // Don't put 'pstf' or 'blwf' on anything before the base consonant.
- FeatureMask features = tagArray1 & ~( pstfFeatureMask | blwfFeatureMask );
charClass = classTable->getCharClass(ch);
@@ -886,5 +842,5 @@
// write below-base consonants
+ if (baseConsonant != lastConsonant) {
- if (baseConsonant != lastConsonant && !seenPreBaseForm) {
for (i = bcSpan + 1; i < postBase; i += 1) {
output.writeChar(chars[i], i, tagArray1);
@@ -916,5 +872,5 @@
// write post-base consonants
// FIXME: does this put the right tags on post-base consonants?
+ if (baseConsonant != lastConsonant) {
- if (baseConsonant != lastConsonant && !seenPreBaseForm) {
if (postBase <= lastConsonant) {
for (i = postBase; i <= lastConsonant; i += 1) {
icu/makefile.mk
Dosyayı görüntüle @
e1fb965e
...
...
@@ -42,9 +42,17 @@ TARFILE_ROOTDIR=icu
#icu4c.8320.freeserif.crash.patch, see
#http://bugs.icu-project.org/trac/ticket/8320 for crash with FreeSerif
#icu4c.7601.Indic-ccmp.patch
#http://bugs.icu-project.org/trac/ticket/7601 ccmp feature for Indic Languages
#icu4c.8198.revert.icu5431.patch
#http://bugs.icu-project.org/trac/ticket/8198 rendering with 0D30 and 0D31
PATCH_FILES
=
\
icu4c-build.patch
\
icu4c.8320.freeserif.crash.patch
\
icu4c.8198.revert.icu5431.patch
\
icu4c.7601.Indic-ccmp.patch
\
icu4c-aix.patch
\
icu4c-wchar_t.patch
\
icu4c-warnings.patch
\
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment