summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/PYEditor.h3
-rw-r--r--src/PYPEmojiCandidates.cc15
2 files changed, 11 insertions, 7 deletions
diff --git a/src/PYEditor.h b/src/PYEditor.h
index e5b2319..6829675 100644
--- a/src/PYEditor.h
+++ b/src/PYEditor.h
@@ -40,6 +40,7 @@ typedef std::shared_ptr<Editor> EditorPtr;
class TraditionalCandidates;
class LuaTriggerCandidates;
class LuaConverterCandidates;
+class EmojiCandidates;
class Editor {
friend class TraditionalCandidates;
@@ -49,6 +50,8 @@ class Editor {
friend class LuaConverterCandidates;
#endif
+ friend class EmojiCandidates;
+
public:
Editor (PinyinProperties & prop, Config & config);
virtual ~Editor (void);
diff --git a/src/PYPEmojiCandidates.cc b/src/PYPEmojiCandidates.cc
index c046a2a..a0587fe 100644
--- a/src/PYPEmojiCandidates.cc
+++ b/src/PYPEmojiCandidates.cc
@@ -25,6 +25,7 @@
#include <algorithm>
#include <string>
#include "PYPPhoneticEditor.h"
+#include "PYConfig.h"
#include "PYPEmojiTable.h"
using namespace PY;
@@ -35,14 +36,14 @@ EmojiCandidates::EmojiCandidates (Editor *editor)
}
static bool compare_match_less_than (const EmojiItem & lhs,
- const EmojiItem & rhs) {
+ const EmojiItem & rhs) {
return 0 > strcmp (lhs.m_emoji_match, rhs.m_emoji_match);
}
-static bool search_emoji (EmojiItem * emojis,
- guint emojis_len,
- const char * match,
- std::string & emoji) {
+static bool search_emoji (const EmojiItem * emojis,
+ guint emojis_len,
+ const char * match,
+ std::string & emoji) {
const EmojiItem item = {match, NULL};
std::pair<const EmojiItem *, const EmojiItem *> range;
@@ -78,7 +79,7 @@ EmojiCandidates::processCandidates (std::vector<EnhancedCandidate> & candidates)
std::string emoji;
if (search_emoji (english_emoji_table,
G_N_ELEMENTS (english_emoji_table),
- m_text, emoji)) {
+ m_editor->m_text, emoji)) {
enhanced.m_display_string = emoji;
candidates.insert (pos, enhanced);
return TRUE;
@@ -86,7 +87,7 @@ EmojiCandidates::processCandidates (std::vector<EnhancedCandidate> & candidates)
int num = std::min
(m_editor->m_config.pageSize (), (guint)candidates.size ());
for (int i = 0; i < num; ++i) {
- text = candidates[i].m_display_string.c_str ();
+ String text = candidates[i].m_display_string;
if (search_emoji (chinese_emoji_table,
G_N_ELEMENTS (chinese_emoji_table),