summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-07-26 03:46:02 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-07-26 03:46:02 +0000
commitb352515cf7df1f928de77a34b4323b1f4bed16f1 (patch)
tree4658fb7aa44946c6e7297e6598272892f17fb241
parent11d57ee7c13faabd210507545b6d4d23ae57febc (diff)
downloadpango-b352515cf7df1f928de77a34b4323b1f4bed16f1.tar.gz
OpenType-1.4 update: backtrack information is stored with the item closest
Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com> * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: OpenType-1.4 update: backtrack information is stored with the item closest to the input first (From FreeType, Werner Lemberg, 2002-09-26)
-rw-r--r--ChangeLog7
-rw-r--r--ChangeLog.pre-1-107
-rw-r--r--ChangeLog.pre-1-47
-rw-r--r--ChangeLog.pre-1-67
-rw-r--r--ChangeLog.pre-1-87
-rw-r--r--pango/opentype/ftxgpos.c26
-rw-r--r--pango/opentype/ftxgsub.c24
7 files changed, 70 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 462e670e..31ea4891 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
+
+ * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
+ OpenType-1.4 update: backtrack information is stored with the
+ item closest to the input first (From FreeType,
+ Werner Lemberg, 2002-09-26)
+
Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>
Update of GPOS and GSUB support to OpenType 1.3
diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10
index 462e670e..31ea4891 100644
--- a/ChangeLog.pre-1-10
+++ b/ChangeLog.pre-1-10
@@ -1,3 +1,10 @@
+Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
+
+ * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
+ OpenType-1.4 update: backtrack information is stored with the
+ item closest to the input first (From FreeType,
+ Werner Lemberg, 2002-09-26)
+
Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>
Update of GPOS and GSUB support to OpenType 1.3
diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4
index 462e670e..31ea4891 100644
--- a/ChangeLog.pre-1-4
+++ b/ChangeLog.pre-1-4
@@ -1,3 +1,10 @@
+Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
+
+ * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
+ OpenType-1.4 update: backtrack information is stored with the
+ item closest to the input first (From FreeType,
+ Werner Lemberg, 2002-09-26)
+
Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>
Update of GPOS and GSUB support to OpenType 1.3
diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6
index 462e670e..31ea4891 100644
--- a/ChangeLog.pre-1-6
+++ b/ChangeLog.pre-1-6
@@ -1,3 +1,10 @@
+Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
+
+ * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
+ OpenType-1.4 update: backtrack information is stored with the
+ item closest to the input first (From FreeType,
+ Werner Lemberg, 2002-09-26)
+
Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>
Update of GPOS and GSUB support to OpenType 1.3
diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8
index 462e670e..31ea4891 100644
--- a/ChangeLog.pre-1-8
+++ b/ChangeLog.pre-1-8
@@ -1,3 +1,10 @@
+Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
+
+ * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
+ OpenType-1.4 update: backtrack information is stored with the
+ item closest to the input first (From FreeType,
+ Werner Lemberg, 2002-09-26)
+
Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>
Update of GPOS and GSUB support to OpenType 1.3
diff --git a/pango/opentype/ftxgpos.c b/pango/opentype/ftxgpos.c
index a183a05c..5137719d 100644
--- a/pango/opentype/ftxgpos.c
+++ b/pango/opentype/ftxgpos.c
@@ -5264,7 +5264,7 @@
curr_pos = 0;
s_in = &in->string[curr_pos];
- for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- )
+ for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- )
{
while ( CHECK_Property( gdef, s_in[j], flags, &property ) )
{
@@ -5277,11 +5277,21 @@
break;
}
- if ( s_in[j] != curr_cpr.Backtrack[i - 1] )
+ /* In OpenType 1.3, it is undefined whether the offsets of
+ backtrack glyphs is in logical order or not. Version 1.4
+ will clarify this:
+
+ Logical order - a b c d e f g h i j
+ i
+ Input offsets - 0 1
+ Backtrack offsets - 3 2 1 0
+ Lookahead offsets - 0 1 2 3 */
+
+ if ( s_in[j] != curr_cpr.Backtrack[i] )
break;
}
- if ( i != 0 )
+ if ( i != bgc )
continue;
}
@@ -5465,7 +5475,7 @@
known_backtrack_classes = i;
}
- if ( bc[bgc - 1 - i] != backtrack_classes[i] )
+ if ( bc[i] != backtrack_classes[i] )
break;
}
@@ -5613,7 +5623,7 @@
s_in = &in->string[curr_pos];
bc = ccpf3->BacktrackCoverage;
- for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- )
+ for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- )
{
while ( CHECK_Property( gdef, s_in[j], flags, &property ) )
{
@@ -5626,7 +5636,7 @@
return TTO_Err_Not_Covered;
}
- error = Coverage_Index( &bc[i - 1], s_in[j], &index );
+ error = Coverage_Index( &bc[i], s_in[j], &index );
if ( error )
return error;
}
@@ -5656,8 +5666,8 @@
return error;
}
- /* we are starting for lookahead glyphs right after the last context
- glyph */
+ /* we are starting to check for lookahead glyphs right after the
+ last context glyph */
curr_pos = j;
s_in = &in->string[curr_pos];
diff --git a/pango/opentype/ftxgsub.c b/pango/opentype/ftxgsub.c
index 148b3a6c..f56ae6f1 100644
--- a/pango/opentype/ftxgsub.c
+++ b/pango/opentype/ftxgsub.c
@@ -3423,13 +3423,13 @@
if ( bgc )
{
- /* Since we don't know in advance the number of glyphs to inspect,
+ /* since we don't know in advance the number of glyphs to inspect,
we search backwards for matches in the backtrack glyph array */
curr_pos = 0;
s_in = &in->string[curr_pos];
- for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- )
+ for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- )
{
while ( CHECK_Property( gdef, s_in[j], flags, &property ) )
{
@@ -3442,11 +3442,21 @@
break;
}
- if ( s_in[j] != curr_csr.Backtrack[i - 1] )
+ /* In OpenType 1.3, it is undefined whether the offsets of
+ backtrack glyphs is in logical order or not. Version 1.4
+ will clarify this:
+
+ Logical order - a b c d e f g h i j
+ i
+ Input offsets - 0 1
+ Backtrack offsets - 3 2 1 0
+ Lookahead offsets - 0 1 2 3 */
+
+ if ( s_in[j] != curr_csr.Backtrack[i] )
break;
}
- if ( i != 0 )
+ if ( i != bgc )
continue;
}
@@ -3630,7 +3640,7 @@
known_backtrack_classes = i;
}
- if ( bc[bgc - 1 - i] != backtrack_classes[i] )
+ if ( bc[i] != backtrack_classes[i] )
break;
}
@@ -3777,7 +3787,7 @@
s_in = &in->string[curr_pos];
bc = ccsf3->BacktrackCoverage;
- for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- )
+ for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- )
{
while ( CHECK_Property( gdef, s_in[j], flags, &property ) )
{
@@ -3790,7 +3800,7 @@
return TTO_Err_Not_Covered;
}
- error = Coverage_Index( &bc[i - 1], s_in[j], &index );
+ error = Coverage_Index( &bc[i], s_in[j], &index );
if ( error )
return error;
}