summaryrefslogtreecommitdiffstats
path: root/src/PYLibPinyin.cc
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2011-10-25 14:36:36 +0800
committerPeng Wu <alexepico@gmail.com>2011-12-22 12:23:14 +0800
commit4d6a548b773ab5d59641208b5668a000287075d3 (patch)
treeadad281a2b86ffb8bfa1c67bba7d17b8e10053c0 /src/PYLibPinyin.cc
parenta83024ca7e24c5a1bd3054f7824d985e2f67bbf8 (diff)
downloadibus-libpinyin-4d6a548b773ab5d59641208b5668a000287075d3.tar.gz
ibus-libpinyin-4d6a548b773ab5d59641208b5668a000287075d3.tar.xz
ibus-libpinyin-4d6a548b773ab5d59641208b5668a000287075d3.zip
add user data directory support
Diffstat (limited to 'src/PYLibPinyin.cc')
-rw-r--r--src/PYLibPinyin.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/PYLibPinyin.cc b/src/PYLibPinyin.cc
index d76e612..077e7e0 100644
--- a/src/PYLibPinyin.cc
+++ b/src/PYLibPinyin.cc
@@ -47,8 +47,15 @@ pinyin_instance_t *
LibPinyinBackEnd::allocPinyinInstance ()
{
if (NULL == m_pinyin_context) {
- m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", NULL);
+ gchar * userdir = g_build_filename (g_get_home_dir(), ".cache",
+ "ibus", "libpinyin", NULL);
+ int retval = g_mkdir_with_parents (userdir, 0700);
+ if (retval) {
+ g_free(userdir); userdir = NULL;
+ }
+ m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", userdir);
setPinyinOptions (&PinyinConfig::instance ());
+ g_free(userdir);
}
return pinyin_alloc_instance (m_pinyin_context);
}
@@ -63,8 +70,15 @@ pinyin_instance_t *
LibPinyinBackEnd::allocChewingInstance ()
{
if (NULL == m_chewing_context) {
+ gchar * userdir = g_build_filename (g_get_home_dir(), ".cache",
+ "ibus", "libbopomofo", NULL);
+ int retval = g_mkdir_with_parents (userdir, 0700);
+ if (retval) {
+ g_free(userdir); userdir = NULL;
+ }
m_chewing_context = pinyin_init ("/usr/share/libpinyin/data", NULL);
setChewingOptions (&BopomofoConfig::instance ());
+ g_free(userdir);
}
return pinyin_alloc_instance (m_chewing_context);
}