diff options
author | Peng Wu <alexepico@gmail.com> | 2013-03-21 16:57:30 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2013-03-21 16:58:16 +0800 |
commit | 4348b63eeec5662fedfc39be6fc78b62e2e26467 (patch) | |
tree | f4e5e8f2f46b6df8659908d655b398d99363485f | |
parent | 9c35f8e85d93356abfa91c08543fff97658ff463 (diff) | |
download | libpinyin-4348b63eeec5662fedfc39be6fc78b62e2e26467.tar.gz libpinyin-4348b63eeec5662fedfc39be6fc78b62e2e26467.tar.xz libpinyin-4348b63eeec5662fedfc39be6fc78b62e2e26467.zip |
write phrases methods
-rw-r--r-- | src/libpinyin.ver | 2 | ||||
-rw-r--r-- | src/pinyin.cpp | 21 | ||||
-rw-r--r-- | src/pinyin.h | 5 |
3 files changed, 28 insertions, 0 deletions
diff --git a/src/libpinyin.ver b/src/libpinyin.ver index 59d16bc..ce53cff 100644 --- a/src/libpinyin.ver +++ b/src/libpinyin.ver @@ -50,6 +50,8 @@ LIBPINYIN { pinyin_get_key_rest_positions; pinyin_get_key_rest_length; pinyin_get_raw_full_pinyin; + pinyin_get_n_phrase; + pinyin_get_phrase_token; local: *; diff --git a/src/pinyin.cpp b/src/pinyin.cpp index c857ae5..6a463e0 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -2009,6 +2009,27 @@ bool pinyin_get_raw_full_pinyin(pinyin_instance_t * instance, return true; } +bool pinyin_get_n_phrase(pinyin_instance_t * instance, + guint * num) { + *num = instance->m_match_results->len; + return true; +} + +bool pinyin_get_phrase_token(pinyin_instance_t * instance, + guint index, + phrase_token_t * token){ + MatchResults & match_results = instance->m_match_results; + + *token = null_token; + + if (index >= match_results->len) + return false; + + *token = g_array_index(match_results, phrase_token_t, index); + + return true; +} + /** * Note: prefix is the text before the pre-edit string. diff --git a/src/pinyin.h b/src/pinyin.h index d8863ac..3a9a16e 100644 --- a/src/pinyin.h +++ b/src/pinyin.h @@ -600,7 +600,12 @@ bool pinyin_get_key_rest_length(pinyin_instance_t * instance, bool pinyin_get_raw_full_pinyin(pinyin_instance_t * instance, const gchar ** utf8_str); +bool pinyin_get_n_phrase(pinyin_instance_t * instance, + guint * num); +bool pinyin_get_phrase_token(pinyin_instance_t * instance, + guint index, + phrase_token_t * token); /* hack here. */ typedef ChewingKey PinyinKey; |