diff options
| author | Sam Varshavchik | 2020-11-29 08:41:57 -0500 |
|---|---|---|
| committer | Sam Varshavchik | 2020-11-30 19:31:57 -0500 |
| commit | 844f6a9ef755c1c5826c9583b364af08b54a4dcc (patch) | |
| tree | 10f0af36c609cad9953f7a736e11a2f2e8d8b897 /unicode/unicodecpp.C | |
| parent | f2db409949ad94d4fc175d04ebd72bda3bd1df4e (diff) | |
| download | courier-libs-844f6a9ef755c1c5826c9583b364af08b54a4dcc.tar.bz2 | |
Combine cleanup functions, add unicode::literals namespace.
Diffstat (limited to 'unicode/unicodecpp.C')
| -rw-r--r-- | unicode/unicodecpp.C | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/unicode/unicodecpp.C b/unicode/unicodecpp.C index 4217630..a0d5ac4 100644 --- a/unicode/unicodecpp.C +++ b/unicode/unicodecpp.C @@ -691,7 +691,8 @@ extern "C" { } void unicode::bidi_cleanup(std::u32string &string, - const std::function<void (size_t)> &lambda) + const std::function<void (size_t)> &lambda, + int cleanup_options) { if (string.empty()) return; @@ -701,6 +702,7 @@ void unicode::bidi_cleanup(std::u32string &string, size_t n=unicode_bidi_cleanup(&string[0], 0, string.size(), + cleanup_options, removed_callback, reinterpret_cast<void *>(&cb)); cb.rethrow(); @@ -709,15 +711,20 @@ void unicode::bidi_cleanup(std::u32string &string, int unicode::bidi_cleanup(std::u32string &string, std::vector<unicode_bidi_level_t> &levels, - const std::function<void (size_t)> &lambda) + const std::function<void (size_t)> &lambda, + int cleanup_options) { if (levels.size() != string.size()) return -1; + if (levels.size() == 0) + return 0; + cb_wrapper<void (size_t)> cb{lambda}; size_t n=unicode_bidi_cleanup(&string[0], &levels[0], string.size(), + cleanup_options, removed_callback, reinterpret_cast<void *>(&cb)); cb.rethrow(); @@ -727,42 +734,6 @@ int unicode::bidi_cleanup(std::u32string &string, return 0; } - -void unicode::bidi_extra_cleanup(std::u32string &string, - const std::function<void (size_t)> &lambda) -{ - if (string.empty()) - return; - - cb_wrapper<void (size_t)> cb{lambda}; - size_t n=unicode_bidi_extra_cleanup(&string[0], - 0, - string.size(), - removed_callback, - reinterpret_cast<void *>(&cb)); - cb.rethrow(); - string.resize(n); -} - -int unicode::bidi_extra_cleanup(std::u32string &string, - std::vector<unicode_bidi_level_t> &levels, - const std::function<void (size_t)> &lambda) -{ - if (levels.size() != string.size()) - return -1; - - cb_wrapper<void (size_t)> cb{lambda}; - size_t n=unicode_bidi_extra_cleanup(&string[0], - &levels[0], - string.size(), - removed_callback, - reinterpret_cast<void *>(&cb)); - cb.rethrow(); - string.resize(n); - levels.resize(n); - return 0; -} - int unicode::bidi_logical_order(std::u32string &string, std::vector<unicode_bidi_level_t> &levels, unicode_bidi_level_t paragraph_embedding, |
