diff -uprw /home/otaylor/cvs/gnome2/pango-head/pango/opentype/ftxgpos.c ./opentype-munge/ftxgpos.c --- /home/otaylor/cvs/gnome2/pango-head/pango/opentype/ftxgpos.c 2003-07-25 12:59:44.000000000 -0400 +++ ./opentype-munge/ftxgpos.c 2003-07-25 12:55:55.000000000 -0400 @@ -2811,20 +2818,16 @@ lat = &la->LigatureAttach[lig_index]; - /* We must now check whether the ligature ID of the current mark glyph - is identical to the ligature ID of the found ligature. If yes, we - can directly use the component index. If not, we attach the mark - glyph to the last component of the ligature. */ + /* Use the component id if defined. If not we simply attach the + mark glyph to the last component of the ligature */ - if ( in->ligIDs && in->components && - in->ligIDs[j] == in->ligIDs[in->pos] ) - { - comp_index = in->components[in->pos]; + comp_index = in->glyph_properties[in->pos].component; + + // ###### why the hell doesn't this compile? +// if (comp_index == MAX_COMPONENT_INDEX) +// comp_index = lat->ComponentCount - 1; if ( comp_index >= lat->ComponentCount ) return TTO_Err_Not_Covered; - } - else - comp_index = lat->ComponentCount - 1; cr = &lat->ComponentRecord[comp_index]; lig_anchor = &cr->LigatureAnchor[class];