summaryrefslogtreecommitdiffstats
path: root/unicode/courier-unicode.h.in
diff options
context:
space:
mode:
Diffstat (limited to 'unicode/courier-unicode.h.in')
-rw-r--r--unicode/courier-unicode.h.in65
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
{