diff options
Diffstat (limited to 'unicode/courier-unicode.h.in')
| -rw-r--r-- | unicode/courier-unicode.h.in | 65 |
1 files changed, 45 insertions, 20 deletions
diff --git a/unicode/courier-unicode.h.in b/unicode/courier-unicode.h.in index 57603da..2999ee3 100644 --- a/unicode/courier-unicode.h.in +++ b/unicode/courier-unicode.h.in @@ -41,7 +41,7 @@ typedef uint32_t char32_t; #endif #endif -#define COURIER_UNICODE_VERSION 220 +#define COURIER_UNICODE_VERSION @HVERSION@ /* ** The system default character set, from the locale. @@ -604,10 +604,10 @@ struct unicode_bidi_direction { struct unicode_bidi_direction unicode_bidi_get_direction(const char32_t *p, size_t n); -extern unicode_bidi_level_t unicode_bidi_calc(const char32_t *p, size_t n, - unicode_bidi_level_t *bufp, - const unicode_bidi_level_t * - initial_embedding_level); +struct unicode_bidi_direction unicode_bidi_calc(const char32_t *p, size_t n, + unicode_bidi_level_t *bufp, + const unicode_bidi_level_t * + initial_embedding_level); extern void unicode_bidi_reorder(char32_t *p, unicode_bidi_level_t *levels, @@ -652,13 +652,15 @@ extern void unicode_bidi_setbnl(char32_t *p, const enum_bidi_type_t *types, size_t n); -extern unicode_bidi_level_t unicode_bidi_calc_levels(const char32_t *p, - const enum_bidi_type_t - *types, - size_t n, - unicode_bidi_level_t *bufp, - const unicode_bidi_level_t - *initial_embedding_level); +extern struct unicode_bidi_direction +unicode_bidi_calc_levels(const char32_t *p, + const enum_bidi_type_t + *types, + size_t n, + unicode_bidi_level_t *bufp, + const unicode_bidi_level_t + *initial_embedding_level); + /* Bitmask options to unicode_bidi_cleanup */ /* @@ -703,6 +705,10 @@ extern size_t unicode_bidi_cleanup(char32_t *string, void (*removed_callback)(size_t, void *), void *); +extern size_t unicode_bidi_cleaned_size(const char32_t *string, + size_t n, + int options); + extern void unicode_bidi_logical_order(char32_t *string, unicode_bidi_level_t *levels, size_t n, @@ -711,6 +717,12 @@ extern void unicode_bidi_logical_order(char32_t *string, void *), void *arg); +extern int unicode_bidi_needs_embed(const char32_t *string, + const unicode_bidi_level_t *levels, + size_t n, + const unicode_bidi_level_t * + paragraph_embedding); + extern void unicode_bidi_embed(const char32_t *string, const unicode_bidi_level_t *levels, size_t n, @@ -2231,7 +2243,7 @@ struct bidi_calc_types { //! can be constructed explicitly, and then passed in directly. std::tuple<std::vector<unicode_bidi_level_t>, - unicode_bidi_level_t> bidi_calc(const bidi_calc_types &s); + struct unicode_bidi_direction> bidi_calc(const bidi_calc_types &s); //! Calculate bidirectional embedding levels @@ -2242,8 +2254,8 @@ std::tuple<std::vector<unicode_bidi_level_t>, //! embedding level. std::tuple<std::vector<unicode_bidi_level_t>, - unicode_bidi_level_t> bidi_calc(const bidi_calc_types &s, - unicode_bidi_level_t level); + struct unicode_bidi_direction> bidi_calc(const bidi_calc_types &s, + unicode_bidi_level_t level); //! Reorder bidirectional text @@ -2322,6 +2334,14 @@ void bidi_logical_order(std::vector<unicode_bidi_level_t> &levels, size_t starting_pos=0, size_t n=(size_t)-1); +//! Whether directional and isolation markers are needed. + +bool bidi_needs_embed(const std::u32string &string, + const std::vector<unicode_bidi_level_t> &levels, + const unicode_bidi_level_t *paragraph_embedding=0, + size_t starting_pos=0, + size_t n=(size_t)-1); + //! Embed directional and isolation markers //! Non-0 return value indicates the string and levels' sizes do not match. @@ -2352,14 +2372,19 @@ std::u32string bidi_embed(const std::u32string &string, //! In order for the unicode string to have the specified default //! paragraph embedding level. -extern char32_t bidi_embed_paragraph_level(const std::u32string &string, - unicode_bidi_level_t level); +char32_t bidi_embed_paragraph_level(const std::u32string &string, + unicode_bidi_level_t level); //! Compute default direction of text -extern unicode_bidi_direction bidi_get_direction(const std::u32string &string, - size_t starting_pos=0, - size_t n=(size_t)-1); +unicode_bidi_direction bidi_get_direction(const std::u32string &string, + size_t starting_pos=0, + size_t n=(size_t)-1); + +//! Override bidi direction. +std::u32string bidi_override(const std::u32string &s, + unicode_bidi_level_t direction, + int cleanup_options=0); #if 0 { |
