change clustering behavior

main
Matthew Butterick 4 years ago
parent 73341a8310
commit 23421dd831

@ -7,164 +7,169 @@
(define hb-direction-values (define hb-direction-values
'(HB_DIRECTION_INVALID = 0 '(HB_DIRECTION_INVALID = 0
HB_DIRECTION_LTR = 4 HB_DIRECTION_LTR = 4
HB_DIRECTION_RTL = 5 HB_DIRECTION_RTL = 5
HB_DIRECTION_TTB = 6 HB_DIRECTION_TTB = 6
HB_DIRECTION_BTT = 7)) HB_DIRECTION_BTT = 7))
(define hb-cluster-levels
'(HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES = 0
HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = 1
HB_BUFFER_CLUSTER_LEVEL_CHARACTERS = 2))
(define (->tag bstr) (define (->tag bstr)
(integer-bytes->integer bstr #f #;(= unsigned) 'big-endian)) (integer-bytes->integer bstr #f #;(= unsigned) 'big-endian))
(define hb-script-values (define hb-script-values
`(HB_SCRIPT_COMMON = ,(->tag #"Zyyy") `(HB_SCRIPT_COMMON = ,(->tag #"Zyyy")
HB_SCRIPT_INHERITED = ,(->tag #"Zinh") HB_SCRIPT_INHERITED = ,(->tag #"Zinh")
HB_SCRIPT_UNKNOWN = ,(->tag #"Zzzz") HB_SCRIPT_UNKNOWN = ,(->tag #"Zzzz")
HB_SCRIPT_ARABIC = ,(->tag #"Arab") HB_SCRIPT_ARABIC = ,(->tag #"Arab")
HB_SCRIPT_ARMENIAN HB_SCRIPT_ARMENIAN
HB_SCRIPT_BENGALI HB_SCRIPT_BENGALI
HB_SCRIPT_CYRILLIC HB_SCRIPT_CYRILLIC
HB_SCRIPT_DEVANAGARI HB_SCRIPT_DEVANAGARI
HB_SCRIPT_GEORGIAN HB_SCRIPT_GEORGIAN
HB_SCRIPT_GREEK HB_SCRIPT_GREEK
HB_SCRIPT_GUJARATI HB_SCRIPT_GUJARATI
HB_SCRIPT_GURMUKHI HB_SCRIPT_GURMUKHI
HB_SCRIPT_HANGUL HB_SCRIPT_HANGUL
HB_SCRIPT_HAN HB_SCRIPT_HAN
HB_SCRIPT_HEBREW HB_SCRIPT_HEBREW
HB_SCRIPT_HIRAGANA HB_SCRIPT_HIRAGANA
HB_SCRIPT_KANNADA HB_SCRIPT_KANNADA
HB_SCRIPT_KATAKANA HB_SCRIPT_KATAKANA
HB_SCRIPT_LAO HB_SCRIPT_LAO
HB_SCRIPT_LATIN = ,(->tag #"Latn") HB_SCRIPT_LATIN = ,(->tag #"Latn")
HB_SCRIPT_MALAYALAM HB_SCRIPT_MALAYALAM
HB_SCRIPT_ORIYA HB_SCRIPT_ORIYA
HB_SCRIPT_TAMIL HB_SCRIPT_TAMIL
HB_SCRIPT_TELUGU HB_SCRIPT_TELUGU
HB_SCRIPT_THAI HB_SCRIPT_THAI
HB_SCRIPT_TIBETAN HB_SCRIPT_TIBETAN
HB_SCRIPT_BOPOMOFO HB_SCRIPT_BOPOMOFO
HB_SCRIPT_BRAILLE HB_SCRIPT_BRAILLE
HB_SCRIPT_CANADIAN_SYLLABICS HB_SCRIPT_CANADIAN_SYLLABICS
HB_SCRIPT_CHEROKEE HB_SCRIPT_CHEROKEE
HB_SCRIPT_ETHIOPIC HB_SCRIPT_ETHIOPIC
HB_SCRIPT_KHMER HB_SCRIPT_KHMER
HB_SCRIPT_MONGOLIAN HB_SCRIPT_MONGOLIAN
HB_SCRIPT_MYANMAR HB_SCRIPT_MYANMAR
HB_SCRIPT_OGHAM HB_SCRIPT_OGHAM
HB_SCRIPT_RUNIC HB_SCRIPT_RUNIC
HB_SCRIPT_SINHALA HB_SCRIPT_SINHALA
HB_SCRIPT_SYRIAC HB_SCRIPT_SYRIAC
HB_SCRIPT_THAANA HB_SCRIPT_THAANA
HB_SCRIPT_YI HB_SCRIPT_YI
HB_SCRIPT_DESERET HB_SCRIPT_DESERET
HB_SCRIPT_GOTHIC HB_SCRIPT_GOTHIC
HB_SCRIPT_OLD_ITALIC HB_SCRIPT_OLD_ITALIC
HB_SCRIPT_BUHID HB_SCRIPT_BUHID
HB_SCRIPT_HANUNOO HB_SCRIPT_HANUNOO
HB_SCRIPT_TAGALOG HB_SCRIPT_TAGALOG
HB_SCRIPT_TAGBANWA HB_SCRIPT_TAGBANWA
HB_SCRIPT_CYPRIOT HB_SCRIPT_CYPRIOT
HB_SCRIPT_LIMBU HB_SCRIPT_LIMBU
HB_SCRIPT_LINEAR_B HB_SCRIPT_LINEAR_B
HB_SCRIPT_OSMANYA HB_SCRIPT_OSMANYA
HB_SCRIPT_SHAVIAN HB_SCRIPT_SHAVIAN
HB_SCRIPT_TAI_LE HB_SCRIPT_TAI_LE
HB_SCRIPT_UGARITIC HB_SCRIPT_UGARITIC
HB_SCRIPT_BUGINESE HB_SCRIPT_BUGINESE
HB_SCRIPT_COPTIC HB_SCRIPT_COPTIC
HB_SCRIPT_GLAGOLITIC HB_SCRIPT_GLAGOLITIC
HB_SCRIPT_KHAROSHTHI HB_SCRIPT_KHAROSHTHI
HB_SCRIPT_NEW_TAI_LUE HB_SCRIPT_NEW_TAI_LUE
HB_SCRIPT_OLD_PERSIAN HB_SCRIPT_OLD_PERSIAN
HB_SCRIPT_SYLOTI_NAGRI HB_SCRIPT_SYLOTI_NAGRI
HB_SCRIPT_TIFINAGH HB_SCRIPT_TIFINAGH
HB_SCRIPT_BALINESE HB_SCRIPT_BALINESE
HB_SCRIPT_CUNEIFORM HB_SCRIPT_CUNEIFORM
HB_SCRIPT_NKO HB_SCRIPT_NKO
HB_SCRIPT_PHAGS_PA HB_SCRIPT_PHAGS_PA
HB_SCRIPT_PHOENICIAN HB_SCRIPT_PHOENICIAN
HB_SCRIPT_CARIAN HB_SCRIPT_CARIAN
HB_SCRIPT_CHAM HB_SCRIPT_CHAM
HB_SCRIPT_KAYAH_LI HB_SCRIPT_KAYAH_LI
HB_SCRIPT_LEPCHA HB_SCRIPT_LEPCHA
HB_SCRIPT_LYCIAN HB_SCRIPT_LYCIAN
HB_SCRIPT_LYDIAN HB_SCRIPT_LYDIAN
HB_SCRIPT_OL_CHIKI HB_SCRIPT_OL_CHIKI
HB_SCRIPT_REJANG HB_SCRIPT_REJANG
HB_SCRIPT_SAURASHTRA HB_SCRIPT_SAURASHTRA
HB_SCRIPT_SUNDANESE HB_SCRIPT_SUNDANESE
HB_SCRIPT_VAI HB_SCRIPT_VAI
HB_SCRIPT_AVESTAN HB_SCRIPT_AVESTAN
HB_SCRIPT_BAMUM HB_SCRIPT_BAMUM
HB_SCRIPT_EGYPTIAN_HIEROGLYPHS HB_SCRIPT_EGYPTIAN_HIEROGLYPHS
HB_SCRIPT_IMPERIAL_ARAMAIC HB_SCRIPT_IMPERIAL_ARAMAIC
HB_SCRIPT_INSCRIPTIONAL_PAHLAVI HB_SCRIPT_INSCRIPTIONAL_PAHLAVI
HB_SCRIPT_INSCRIPTIONAL_PARTHIAN HB_SCRIPT_INSCRIPTIONAL_PARTHIAN
HB_SCRIPT_JAVANESE HB_SCRIPT_JAVANESE
HB_SCRIPT_KAITHI HB_SCRIPT_KAITHI
HB_SCRIPT_LISU HB_SCRIPT_LISU
HB_SCRIPT_MEETEI_MAYEK HB_SCRIPT_MEETEI_MAYEK
HB_SCRIPT_OLD_SOUTH_ARABIAN HB_SCRIPT_OLD_SOUTH_ARABIAN
HB_SCRIPT_OLD_TURKIC HB_SCRIPT_OLD_TURKIC
HB_SCRIPT_SAMARITAN HB_SCRIPT_SAMARITAN
HB_SCRIPT_TAI_THAM HB_SCRIPT_TAI_THAM
HB_SCRIPT_TAI_VIET HB_SCRIPT_TAI_VIET
HB_SCRIPT_BATAK HB_SCRIPT_BATAK
HB_SCRIPT_BRAHMI HB_SCRIPT_BRAHMI
HB_SCRIPT_MANDAIC HB_SCRIPT_MANDAIC
HB_SCRIPT_CHAKMA HB_SCRIPT_CHAKMA
HB_SCRIPT_MEROITIC_CURSIVE HB_SCRIPT_MEROITIC_CURSIVE
HB_SCRIPT_MEROITIC_HIEROGLYPHS HB_SCRIPT_MEROITIC_HIEROGLYPHS
HB_SCRIPT_MIAO HB_SCRIPT_MIAO
HB_SCRIPT_SHARADA HB_SCRIPT_SHARADA
HB_SCRIPT_SORA_SOMPENG HB_SCRIPT_SORA_SOMPENG
HB_SCRIPT_TAKRI HB_SCRIPT_TAKRI
HB_SCRIPT_BASSA_VAH HB_SCRIPT_BASSA_VAH
HB_SCRIPT_CAUCASIAN_ALBANIAN HB_SCRIPT_CAUCASIAN_ALBANIAN
HB_SCRIPT_DUPLOYAN HB_SCRIPT_DUPLOYAN
HB_SCRIPT_ELBASAN HB_SCRIPT_ELBASAN
HB_SCRIPT_GRANTHA HB_SCRIPT_GRANTHA
HB_SCRIPT_KHOJKI HB_SCRIPT_KHOJKI
HB_SCRIPT_KHUDAWADI HB_SCRIPT_KHUDAWADI
HB_SCRIPT_LINEAR_A HB_SCRIPT_LINEAR_A
HB_SCRIPT_MAHAJANI HB_SCRIPT_MAHAJANI
HB_SCRIPT_MANICHAEAN HB_SCRIPT_MANICHAEAN
HB_SCRIPT_MENDE_KIKAKUI HB_SCRIPT_MENDE_KIKAKUI
HB_SCRIPT_MODI HB_SCRIPT_MODI
HB_SCRIPT_MRO HB_SCRIPT_MRO
HB_SCRIPT_NABATAEAN HB_SCRIPT_NABATAEAN
HB_SCRIPT_OLD_NORTH_ARABIAN HB_SCRIPT_OLD_NORTH_ARABIAN
HB_SCRIPT_OLD_PERMIC HB_SCRIPT_OLD_PERMIC
HB_SCRIPT_PAHAWH_HMONG HB_SCRIPT_PAHAWH_HMONG
HB_SCRIPT_PALMYRENE HB_SCRIPT_PALMYRENE
HB_SCRIPT_PAU_CIN_HAU HB_SCRIPT_PAU_CIN_HAU
HB_SCRIPT_PSALTER_PAHLAVI HB_SCRIPT_PSALTER_PAHLAVI
HB_SCRIPT_SIDDHAM HB_SCRIPT_SIDDHAM
HB_SCRIPT_TIRHUTA HB_SCRIPT_TIRHUTA
HB_SCRIPT_WARANG_CITI HB_SCRIPT_WARANG_CITI
HB_SCRIPT_AHOM HB_SCRIPT_AHOM
HB_SCRIPT_ANATOLIAN_HIEROGLYPHS HB_SCRIPT_ANATOLIAN_HIEROGLYPHS
HB_SCRIPT_HATRAN HB_SCRIPT_HATRAN
HB_SCRIPT_MULTANI HB_SCRIPT_MULTANI
HB_SCRIPT_OLD_HUNGARIAN HB_SCRIPT_OLD_HUNGARIAN
HB_SCRIPT_SIGNWRITING HB_SCRIPT_SIGNWRITING
HB_SCRIPT_ADLAM HB_SCRIPT_ADLAM
HB_SCRIPT_BHAIKSUKI HB_SCRIPT_BHAIKSUKI
HB_SCRIPT_MARCHEN HB_SCRIPT_MARCHEN
HB_SCRIPT_OSAGE HB_SCRIPT_OSAGE
HB_SCRIPT_TANGUT HB_SCRIPT_TANGUT
HB_SCRIPT_NEWA HB_SCRIPT_NEWA
HB_SCRIPT_MASARAM_GONDI HB_SCRIPT_MASARAM_GONDI
HB_SCRIPT_NUSHU HB_SCRIPT_NUSHU
HB_SCRIPT_SOYOMBO HB_SCRIPT_SOYOMBO
HB_SCRIPT_ZANABAZAR_SQUARE HB_SCRIPT_ZANABAZAR_SQUARE
HB_SCRIPT_DOGRA HB_SCRIPT_DOGRA
HB_SCRIPT_GUNJALA_GONDI HB_SCRIPT_GUNJALA_GONDI
HB_SCRIPT_HANIFI_ROHINGYA HB_SCRIPT_HANIFI_ROHINGYA
HB_SCRIPT_MAKASAR HB_SCRIPT_MAKASAR
HB_SCRIPT_MEDEFAIDRIN HB_SCRIPT_MEDEFAIDRIN
HB_SCRIPT_OLD_SOGDIAN HB_SCRIPT_OLD_SOGDIAN
HB_SCRIPT_SOGDIAN HB_SCRIPT_SOGDIAN
HB_SCRIPT_INVALID = ,(->tag #"\0\0\0\0") HB_SCRIPT_INVALID = ,(->tag #"\0\0\0\0")
_HB_SCRIPT_MAX_VALUE _HB_SCRIPT_MAX_VALUE
_HB_SCRIPT_MAX_VALUE_SIGNED)) _HB_SCRIPT_MAX_VALUE_SIGNED))

@ -33,6 +33,7 @@
(define (default-buffer-setup buf) (define (default-buffer-setup buf)
(hb_buffer_set_direction buf 'HB_DIRECTION_LTR) (hb_buffer_set_direction buf 'HB_DIRECTION_LTR)
(hb_buffer_set_script buf 'HB_SCRIPT_LATIN) (hb_buffer_set_script buf 'HB_SCRIPT_LATIN)
(hb_buffer_set_cluster_level buf 'HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS)
(hb_buffer_set_language buf (hb_language_from_string #"en")) (hb_buffer_set_language buf (hb_language_from_string #"en"))
buf) buf)
@ -55,6 +56,10 @@
(_int = text-length) (_int = text-length)
-> _void)) -> _void))
(define _hb_cluster_t (_enum hb-cluster-levels))
(define-harfbuzz hb_buffer_set_cluster_level (_fun _hb_buffer_t _hb_cluster_t -> _void))
(define-harfbuzz hb_buffer_get_cluster_level (_fun _hb_buffer_t -> _hb_cluster_t))
(define _hb_direction_t (_enum hb-direction-values)) (define _hb_direction_t (_enum hb-direction-values))
(define-harfbuzz hb_buffer_set_direction (_fun _hb_buffer_t _hb_direction_t -> _void)) (define-harfbuzz hb_buffer_set_direction (_fun _hb_buffer_t _hb_direction_t -> _void))
(define-harfbuzz hb_buffer_get_direction (_fun _hb_buffer_t -> _hb_direction_t)) (define-harfbuzz hb_buffer_get_direction (_fun _hb_buffer_t -> _hb_direction_t))

Loading…
Cancel
Save