• Eli Zaretskii's avatar
    Provide text directionality and language to HarfBuzz shaper · 48776b70
    Eli Zaretskii authored
    * lisp/language/tv-util.el (tai-viet-composition-function):
    * lisp/language/ethio-util.el (ethio-composition-function):
    * lisp/language/japanese.el (compose-gstring-for-variation-glyph):
    * lisp/language/thai-util.el (thai-composition-function):
    * lisp/language/misc-lang.el (arabic-shape-gstring):
    * lisp/language/lao-util.el (lao-composition-function):
    * lisp/language/hebrew.el (hebrew-shape-gstring):
    * lisp/composite.el (compose-gstring-for-graphic)
    (compose-gstring-for-dotted-circle, auto-compose-chars)
    (compose-gstring-for-terminal): Accept 2nd argument DIRECTION; all
    callers changed.
    
    * src/composite.c (composition_reseat_it): Call
    auto-composition-function with one more argument DIRECTION.
    (syms_of_composite) <auto-composition-function>: Update the doc
    string.
    * src/ftfont.c (ftfont_shape_by_hb): Compute language and
    direction, and set buffer properties accordingly.
    * src/composite.c (autocmp_chars):
    * src/w32uniscribe.c (uniscribe_shape):
    * src/xftfont.c (xftfont_shape):
    * src/ftfont.c (ftfont_shape, ftfont_shape_by_hb):
    * src/font.c (Ffont_shape_gstring): Accept an additional argument
    DIRECTION.
    * src/macfont.m (lgstring_direction): New enum.
    (mac_font_shape_1, mac_screen_font_shape, mac_font_shape):
    Accept an additional argument specifying text direction.  All
    callers changed.
    * src/font.c (syms_of_font): New symbols QL2R and QR2L.
    * src/font.h (shape): Accept new argument DIRECTION.  All
    implementations changed.  (Bug#33729)
    (ftfont_shape): Update prototype.
    48776b70
composite.c 61.6 KB