Rework opentype interfaces and other changes to make GPOS work for Arabic.
authorOwen Taylor <otaylor@redhat.com>
Sun, 29 Feb 2004 15:44:50 +0000 (15:44 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Sun, 29 Feb 2004 15:44:50 +0000 (15:44 +0000)
commita7e096c5de3ec5319bf9333c9ace0732d97c52c3
treec453c485e0de473632dec7393c689d4c563f27be
parentd670ddf99192dd4999775a9215a818ae63fa3416
Rework opentype interfaces and other changes to make GPOS work for Arabic.

Sun Feb 29 09:25:13 2004  Owen Taylor  <otaylor@redhat.com>

        Rework opentype interfaces and other changes to make GPOS
        work for Arabic. (Most of #117282, #121060)

        * pango/opentype/otlbuffer.[ch]: OTL_Buffer that
        acts as a replacement for the separate GSUB and
        GPOS string structures and hides many of the internal
        details.

        * pango/opentype/ftxgsub.[ch] pango/opentype/ftxgpos.[ch]:
        Adapt to OTL_Buffer.

        * pango/opentype/ftxgpos.c: Redo handling of cursive
        chains so that it actually works.

        * pango/pango-ot.h pango/opentype/pango-ot-buffer.c:
        Pango wrapper around OTL_Buffer.

        * pango/pango-ot.h pango/pango-ot-ruleset.c pango/pango-ot-buffer.c:
        Split pango_ot_ruleset_shape() into pango_ot_ruleset_substitute(),
        pango_ot_ruleset_position(), make them act on
        PangoOTBuffer, add a separate pango_ot_buffer_output()
        which does the default positioning and writes to a
        PangoGlyphString.

        * modules/arabic/arabic-fc.c modules/indic/indic-fc.c
        modules/indic/mprefixups.[ch]: Adapt to new OpenType
        interfaces; add GPOS features for Arabic.

        * pango/opentype/pango-ot-info.c: Don't derive class information
        from Unicode properties for Arabic presentation forms,
        let the shaping process derive the properties.
14 files changed:
src/Makefile.am
src/ftxgdef.c
src/ftxgpos.c
src/ftxgpos.h
src/ftxgsub.c
src/ftxgsub.h
src/ftxopen.h
src/otlbuffer.c [new file with mode: 0644]
src/otlbuffer.h [new file with mode: 0644]
src/ottest.c
src/pango-ot-buffer.c [new file with mode: 0644]
src/pango-ot-info.c
src/pango-ot-private.h
src/pango-ot-ruleset.c