diff options
| author | Sam Varshavchik | 2021-02-23 19:18:13 -0500 | 
|---|---|---|
| committer | Sam Varshavchik | 2021-02-23 19:18:13 -0500 | 
| commit | a6e6ff2e38a390e66982210eb56972f9e3c00477 (patch) | |
| tree | da9eafa6f4f9c324c08f7cee3527cda572f611c7 /unicode/unicodecpp.C | |
| parent | 8327472b2c20a2e2466e5f4224f2910dda66950c (diff) | |
| download | courier-libs-a6e6ff2e38a390e66982210eb56972f9e3c00477.tar.bz2 | |
courier-unicode: unicode_bidi_cleaned_size, unicode::bidi_override
Diffstat (limited to 'unicode/unicodecpp.C')
| -rw-r--r-- | unicode/unicodecpp.C | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/unicode/unicodecpp.C b/unicode/unicodecpp.C index e91f756..04d9879 100644 --- a/unicode/unicodecpp.C +++ b/unicode/unicodecpp.C @@ -949,3 +949,20 @@ unicode_bidi_direction unicode::bidi_get_direction(const std::u32string &string,  	return unicode_bidi_get_direction(string.c_str()+starting_pos, n);  } + +std::u32string unicode::bidi_override(const std::u32string &s, +				      unicode_bidi_level_t direction, +				      int cleanup_options) +{ +	std::u32string ret; + +	ret.reserve(s.size()+1); + +	ret.push_back(' '); +	ret.insert(ret.end(), s.begin(), s.end()); + +	bidi_cleanup(ret, [](size_t) {}, cleanup_options); +	ret.at(0)=direction & 1 ? UNICODE_RLO : UNICODE_LRO; + +	return ret; +} | 
